The results of running the dacapo benchmarks for the recent ArrayList changes (with 'large' data sets and measuring the 20th cycle, "-n 20") are appended below. The jre column uses 'orig', 'expt', 'clon', 'size' for the original, the version with the exception re-ordering, the version with the clone remove, and the latest version with the lastIndex/size field change.
There aren't easy to interpret. I think they are mostly to close to callout any particular change as being good/bad. I guess we might need to come up with some microbenchmarks that reproduce what we expect are likely workloads. This time I also produced some graphs of the time taken to complete the last 15 cycles. They are at: http://tinyurl.com/349t9z2 http://tinyurl.com/36xfmsx http://tinyurl.com/2v9rcg9 http://tinyurl.com/3555wny http://tinyurl.com/3856v7e Comments and interpretations welcome. Regards, -Mark. avrora JRE | Runs | % | Result (normalized, smaller is better) orig | 4 | 100.61 | ################################################# expt | 4 | 100.00 | ################################################# clon | 4 | 100.25 | ################################################# size | 4 | 101.28 | ################################################## h2 JRE | Runs | % | Result (normalized, smaller is better) orig | 4 | 100.73 | ################################################# expt | 4 | 100.00 | ################################################# clon | 4 | 101.13 | ################################################# size | 4 | 101.60 | ################################################## jython JRE | Runs | % | Result (normalized, smaller is better) orig | 4 | 100.00 | ################################################# expt | 4 | 101.76 | ################################################## clon | 4 | 100.81 | ################################################# size | 4 | 100.71 | ################################################# pmd JRE | Runs | % | Result (normalized, smaller is better) orig | 4 | 101.82 | ################################################## expt | 4 | 100.00 | ################################################# clon | 4 | 100.90 | ################################################# size | 4 | 100.17 | ################################################# sunflow JRE | Runs | % | Result (normalized, smaller is better) orig | 4 | 100.52 | ################################################# expt | 4 | 101.07 | ################################################## clon | 4 | 101.03 | ################################################# size | 4 | 100.00 | ################################################# JRE is the identifier for the JRE executing the benchmark. Runs is the number of test runs that passed (low numbers => instability?). The % field is a percentage slow down compared to the fastest result. The result is a simple graph of average execution time normalized based on the slowest result.