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 3-5 5 17 13 25
jess 2-617 1
raytrace 3-7 8 4
db 3-4 5 16 11 23
javac 3-4
jack 3-714 9
antlr 4-1413 17
bloat* 3-1116 24
fop 9-1216
hsqldb 8-13 8 30 5
jython 4-1512 12
pmd 3-824 22
ps 13-22 7 31 5
  1. Although a few clusters captures most space rental for some benchmarks (compress, raytrace, db, hsqldb, ps), others required much more.
  2. javac is not handled at all well: just over 32 clusters would be required to capture most space rental.
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).