开源规划调度引擎OptaPlanner官网发布了一份Java11GC性能基准测试报告。目前使用最多的Java版本是8,所以测试人员分别使用Java8和Java11进行对比测试。GC是影响Java性能的关键因素,所以测试自然要以GC为主。分别在G1GC和并行GC下进行测试。结果如下:Java8vs.Java11usingG1GCG1GCMinutespersecond:Java11在几乎所有测试数据集上都有加速。平均而言,仅仅切换到Java11就有16%的提升,而这个提升可能是由于引入了JEP307:ParallelFullGCforG1inJava10.MinutespersecondwithParallelGC:UsingParallelGC,结果不如G1,在一些数据集上有一些改进,但其他数据集保持不变甚至出现性能下降。平均而言,Java11提供了超过4%的性能提升。测试人员还比较了Java11上的并行GC和G1GC:ParallelGConJava11vs.G1GC结果表明,G1GC总体上不如并行GC。OptaPlanner表示,从Java8到Java11,G1GC的平均速度提高了16.1%,ParallelGC提高了4.5%。同时,虽然并行GC是面向吞吐量的,而G1侧重于低延迟GC,但Java11带来的G1的显着改进使得直接比较两者是有意义的。此外,基于基准测试中的大多数数据集,并行GC更适合OptaPlanner,因为吞吐量对于解决OptaPlanner的优化问题更为重要。详细的测试基准和流程见原文:https://www.optaplanner.org/blog/2019/01/17/HowMuchFasterIsJava11.html
