For each benchmark, I plot

  1. s/c: graphs comparing the site rental and volumes, cumulatively, of the top 32 sites and partitions, ordered by site rental.
  2. 3D plots of (time of death, lifetime, volume) of the immortal partition and the other top 15 partitions. The yellow "shadows" point back to the time at which the objects were allocated. The boxes are an attempt to group objects that die together.

Commentary

benchmark s/csr at 95+%vol at 95+%
compress 16 0 0 1 29
jess 2-6 5 15 8
raytrace 4-16 0 1 4 29
db 16 30 0
javac 3-5 2 13 6
jack 4-8 1 12 3
antlr 3-14 1 14 3
bloat* 3-14 1 3 3
fop 2-4 1 11 12
hsqldb 4-6 1 2 3 30
jython 2-14 1 4 2
pmd 2-20 1 13 2
ps 4-14 1 8 2
  1. There's something wrong with db. All the sr's are 0. Maybe the compiler has no significant SR so the heapstats file records 0.0000.
  2. In most cases, all SR is captured by the immortal cluster and 1 other.
  3. Most volume is collected by very few clusters.
  4. Only a few sites are responsible for most SR.
benchmarkclusters (0=immortal)

Here's how to read our 3D plots. Time of death is plotted horizontally (from right 0% to left 100%). Age is plotted from back o% to front 100%. Volume that died is plotted vertically. Note that it is impossible for any point to fall SE of the green line (its age would be greater than its time of death). The plots have been annotated with coloured rectangles that group objects that seem to live and die together, i.e. with opposing corners at (phase_end-max_age,min_age) and (phase_end,max_age).