An Empirical Analysis of Java Performance Quality Simon Chow
Objectives See if we can enhance the performance of Java applications without modifying the Java code directly Perform test runs with SPECjvm benchmarks to determine the performance quality of the computer
SpecJVM and its Benchmarks A benchmark suite that measures a computer system’s performance through its Java Runtime Environment Serial Benchmark Derby Benchmark Sunflow benchmark Each benchmark has a warmup and iteration phase
Parameters Used For SpecJVM Runs Adjusting Memory Heap Size: –Xmx1g -Xmx2g –Xmx3g For tuning garbage collection: G1GC ConcMarkSweep Parallel
Serial Performance vs Heap Memory Size Data Performance (op/min) Java Parameter Trial 1 Trial 2 Trial 3 Average None 86.51 87.37 94.46 89.45 "-Xmx1g" 85.82 98.74 79.45 88.00 "-Xmx2g 83.70 97.67 75.86 85.74 "-Xmx3g 86.06 96.94 95.67 92.89
Derby Performance vs Heap Memory Size Data Performance (op/min) Java Parameter Trial 1 Trial 2 Average None 267.99 257.27 262.63 "-Xmx1g" 230.48 265.54 248.01 "-Xmx2g 225.02 241.62 233.32 "-Xmx3g 210.65 260.13 235.39
Garbage Collection Types With Serial Benchmark Performance (op/min) Java Parameter Trial 1 Trial 2 Trial 3 Average None 94.31 96.20 91.49 94.00 G1 94.18 87.69 96.59 92.82 MarkSweep 90.00 96.28 94.73 93.67 Parallel 96.26 98.52 94.66 96.48
Garbage Collection Types With Derby Benchmark Performance (op/min) Java Parameter Trial 1 Trial 2 Trial 3 Average None 282.95 299.14 284.41 288.33 G1 303.54 298.83 312.73 305.03 MarkSweep 285.29 259.12 275.20 273.20 Parallel 253.10 284.79 275.78 271.22
Garbage Collection Types With Sunflow Benchmark Performance (op/min) Java Parameter Trial 1 Trial 2 Trial 3 Average None 46.76 47.73 46.93 47.14 G1 47.19 49.93 51.09 49.40 MarkSweep 50.05 46.99 43.16 46.73 Parallel 44.31 41.80 43.33 43.15
Conclusions Modifying the memory heap size parameter seems to have little to no effect on the Java performance For the garbage collection options, it appears that the G1 garbage collection is faster than both Parallel and MarkSweep
Next Steps Test lower heap memory sizes (i.e 500 MB) Perform further analysis on the garbage collection data to better observe their differences in performance
Questions ?