Tim Peters added the comment:
OK, it sounds to me like you do not have a reproducible test case, of any kind.
It that's true, this bug report isn't going anywhere :-(
Python isn't a memory-testing program, so it would be insanely inefficient for
it to (for example) read up every byte it writes, just to make sure the memory
isn't bad. If you want to alter the source of _your_ Python to do that, fine!
It won't go into the official distribution, but it might help you.
For the same reason, core Python won't go into the business of sorting out
various kinds of memory addresses. User-level code (including Python) works
with the virtual (logical) addresses the operating system gives it. For a hint
of some of the difficulties in going deeper than that, here's a note from Linus
Torvalds:
http://www.tldp.org/LDP/khg/HyperNews/get/devices/addrxlate.html
About "If you would have the time to stitch down some test for me to execute
with the garbage collector calls, it would be probably the best." I'm not sure
what you're suggesting there. That we write a Python program that tries to
trigger errors in your BIOS? LOL - not likely ;-)
If you want to force a lot of allocations, deallocations, and gc runs,
something like this will do it:
"""
def stress():
import gc
class C(object):
def __init__(self):
self.loop = self
N = 500000
d = dict((C(), C()) for i in xrange(N))
j = 0
while 1:
for i in xrange(N // 2):
d.popitem()
for i in xrange(N // 2):
d[C()] = C()
j += 1
if j % 10 == 0:
print j
gc.set_debug(gc.DEBUG_STATS)
gc.collect()
gc.set_debug(0)
stress()
"""
Setting N larger will make it consume more RAM. The output is essentially
meaningless, produced just so you know it's still running.
----------
_______________________________________
Python tracker <[email protected]>
<http://bugs.python.org/issue18843>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe:
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com