[pypy-svn] r31251 - pypy/dist/pypy/objspace/std

mwh at codespeak.net mwh at codespeak.net
Fri Aug 11 11:23:54 CEST 2006


Author: mwh
Date: Fri Aug 11 11:23:53 2006
New Revision: 31251

Modified:
   pypy/dist/pypy/objspace/std/dictmultiobject.py
Log:
make the _dict_info list not global


Modified: pypy/dist/pypy/objspace/std/dictmultiobject.py
==============================================================================
--- pypy/dist/pypy/objspace/std/dictmultiobject.py	(original)
+++ pypy/dist/pypy/objspace/std/dictmultiobject.py	Fri Aug 11 11:23:53 2006
@@ -117,11 +117,11 @@
 
 if MEASURE_DICT:
     import time, py
-    _dict_infos = []
 
     class DictInfo(object):
+        _dict_infos = []
         def __init__(self):
-            self.id = len(_dict_infos)
+            self.id = len(self._dict_infos)
 
             self.getitems = 0;  self.setitems = 0; self.delitems = 0
             self.lengths = 0;   self.clears = 0;   self.has_keys = 0;  self.gets = 0
@@ -158,7 +158,7 @@
                 else:
                     self.sig = '(%s:%s)%s'%(frame.f_code.co_filename, frame.f_lineno, frame.f_code.co_name)
 
-            _dict_infos.append(self)
+            self._dict_infos.append(self)
         def __repr__(self):
             args = []
             for k in sorted(self.__dict__):
@@ -267,7 +267,7 @@
             return self.content.items()
 
     _example = DictInfo()
-    del _dict_infos[-1]
+    del DictInfo._dict_infos[-1]
     tmpl = 'os.write(fd, "%(attr)s" + ": " + str(info.%(attr)s) + "\\n")'
     bodySrc = []
     for attr in sorted(_example.__dict__):
@@ -283,7 +283,7 @@
     def report():
         os.write(2, "starting to report!\n")
         fd = os.open('dictinfo.txt', os.O_CREAT|os.O_WRONLY|os.O_TRUNC, 0644)
-        for info in _dict_infos:
+        for info in DictInfo._dict_infos:
             os.write(fd, '------------------\n')
             _report_one(fd, info)
         os.close(fd)
@@ -291,11 +291,11 @@
 
     def reportDictInfo():
         d = {}
-        if not _dict_infos:
+        if not DictInfo._dict_infos:
             return
         stillAlive = 0
         totLifetime = 0.0
-        for info in _dict_infos:
+        for info in DictInfo._dict_infos:
             for attr in info.__dict__:
                 if attr == 'maxcontents':
                     continue
@@ -308,10 +308,10 @@
             else:
                 stillAlive += 1
         import cPickle
-        cPickle.dump(_dict_infos, open('dictinfos.pickle', 'wb'))
-        print 'reporting on', len(_dict_infos), 'dictionaries'
-        if stillAlive != len(_dict_infos):
-            print 'average lifetime', totLifetime/(len(_dict_infos) - stillAlive),
+        cPickle.dump(DictInfo._dict_infos, open('dictinfos.pickle', 'wb'))
+        print 'reporting on', len(DictInfo._dict_infos), 'dictionaries'
+        if stillAlive != len(DictInfo._dict_infos):
+            print 'average lifetime', totLifetime/(len(DictInfo._dict_infos) - stillAlive),
             print '('+str(stillAlive), 'still alive)'
         print d
 



More information about the Pypy-commit mailing list