[pypy-dev] some GC statistics

Carl Friedrich Bolz cfbolz at gmx.de
Mon Oct 15 01:13:27 CEST 2007


Hi all!

I did some statistics of the memory pypy-c uses when running pystone.
Some results below:

  - objects allocated: 14228349
  - size allocated: 314.25MB
  - average object size: 23.16 bytes
  - average object life time: 1.17MB allocated
  - 0.3615% of objects lifes longer die before 8MB are allocated (which
    is the default heap size (it's very similar for number of objects)

in this setting, a collection happened every 50KB allocated, so this is
about the error on life time numbers.

top ten allocated types:

GcStruct W_IntObject { super, inst_intval } 104.6MB
GcStruct StdObjSpaceFrame { super } 77.9MB
GcArray of * GcStruct object { typeptr } 62.9MB
GcStruct list { length, items } 27.5MB
GcArray of dictentry { key: * GcStruct W_Root { super }, f_everused: 
Bool, value: * GcStruct W_Root { super }, f_hash: Signed } 6.7MB
GcStruct LoopBlock { super } 5.7MB
GcStruct rpy_string { hash, chars } 3.7MB
GcStruct ArgumentsPrepended { super, inst_args, inst_w_firstarg } 3.5MB
GcArray of Char 3.2MB
GcStruct W_StringObject { super, inst__value } 3.1 MB


there are also some more or less useful graphs here:

http://codespeak.net/~cfbolz/gcstats/pystone.pdf

This is not easily repeatable with richards, just because there is too
much data :-).

Cheers,

Carl Friedrich




More information about the Pypy-dev mailing list