Message196578
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. |
|
Date |
User |
Action |
Args |
2013-08-30 21:22:08 | tim.peters | set | recipients:
+ tim.peters, amaury.forgeotdarc, mmokrejs, vstinner, sjt, skrah, neologix |
2013-08-30 21:22:08 | tim.peters | set | messageid: <1377897728.39.0.585196238039.issue18843@psf.upfronthosting.co.za> |
2013-08-30 21:22:08 | tim.peters | link | issue18843 messages |
2013-08-30 21:22:07 | tim.peters | create | |
|