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 2-4 2 1 3 2
jess 1-316 19 1 29
raytrace 2-5 4 3
db 2-3 1 2 3 4
javac 232
jack 3-5 7 26 6 24
antlr 3-1425 18
bloat* 2-7 6 32 5
fop 10-13 6
hsqldb 7-10 1 3 4 21
jython 3-11 3 12 2 12
pmd 2-514 16
ps 23-46 0 8 2
  1. The fractions are a fraction of total allocation, not of this package/scope. So the table above represents a guess of where the asymptote is.
  2. The graphs for bloat look dodgy. Why does the default version have so few clusters compared to the small and large versions?
  3. The number of clusters required is generally small (less than 7) to catch most site rental and/or volume; there are some exceptions (javac, antlr, pmd)
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).