Skip to content

JMH benchmark for #39 and #42

Christoph John edited this page May 9, 2018 · 11 revisions

Just wanted to keep this here for further reference.

With #39 and #42 there were some changes done to have less GC happen and to improve the general Message.toString() performance.

Here are the files used. Just package them into a new JMH benchmark project and then use

  • mvn clean install
  • java -jar target/benchmarks.jar -prof gc

JMH benchmark
Message.java - the improved method is called toString2()
FieldMap.java
NumbersCache.java

Benchmark                                                      Mode  Cnt       Score      Error   Units
MyBenchmark.testNewToString                                   thrpt  200  210499.265 ± 3857.339   ops/s
MyBenchmark.testNewToString:·gc.alloc.rate                    thrpt  200     248.304 ±    4.549  MB/sec
MyBenchmark.testNewToString:·gc.alloc.rate.norm               thrpt  200    1856.002 ±    0.001    B/op
MyBenchmark.testNewToString:·gc.churn.PS_Eden_Space           thrpt  200     252.547 ±   20.310  MB/sec
MyBenchmark.testNewToString:·gc.churn.PS_Eden_Space.norm      thrpt  200    1885.374 ±  144.966    B/op
MyBenchmark.testNewToString:·gc.churn.PS_Survivor_Space       thrpt  200       0.014 ±    0.004  MB/sec
MyBenchmark.testNewToString:·gc.churn.PS_Survivor_Space.norm  thrpt  200       0.107 ±    0.032    B/op
MyBenchmark.testNewToString:·gc.count                         thrpt  200     330.000             counts
MyBenchmark.testNewToString:·gc.time                          thrpt  200     237.000                 ms
MyBenchmark.testOldToString                                   thrpt  200  141528.707 ± 2649.763   ops/s
MyBenchmark.testOldToString:·gc.alloc.rate                    thrpt  200     586.761 ±   10.672  MB/sec
MyBenchmark.testOldToString:·gc.alloc.rate.norm               thrpt  200    6524.003 ±    8.524    B/op
MyBenchmark.testOldToString:·gc.churn.PS_Eden_Space           thrpt  200     586.614 ±   11.655  MB/sec
MyBenchmark.testOldToString:·gc.churn.PS_Eden_Space.norm      thrpt  200    6522.385 ±   53.678    B/op
MyBenchmark.testOldToString:·gc.churn.PS_Survivor_Space       thrpt  200       0.104 ±    0.008  MB/sec
MyBenchmark.testOldToString:·gc.churn.PS_Survivor_Space.norm  thrpt  200       1.167 ±    0.098    B/op
MyBenchmark.testOldToString:·gc.count                         thrpt  200    2748.000             counts
MyBenchmark.testOldToString:·gc.time                          thrpt  200    1835.000                 ms