Message3041
# When Pickler.object is used for dump typles into file and Unpickler for load
# from files. A loaded object are not garbage collected. When function
# dump(object,file) is used Unpickler works fine. Problem is in pickle and
# cPickle module tested on Python 2.0 Red Hat Linux 6.2
import gc
def main():
fp = open('/tmp/xxx', 'w')
pic = pickle.Pickler(fp, 1) # ERROR
for i in range(10000):
pickle.dump(([long(i), long(i), long(i), long(i)], i), fp)
# this is OK
pic.dump(([long(i), long(i), long(i), long(i)], i))
# Memory leak
fp.close()
gc.set_debug(gc.DEBUG_STATS)
fp = open('/tmp/xxx')
upic = pickle.Unpickler(fp)
try:
while 1:
gc.collect()
print upic.load()
except EOFError:
pass
fp.close()
if __name__ == '__main__':
import sys
if len(sys.argv) > 1:
import cPickle
pickle = cPickle
else:
import pickle
main()
|
|
Date |
User |
Action |
Args |
2007-08-23 13:52:54 | admin | link | issue229810 messages |
2007-08-23 13:52:54 | admin | create | |
|