自 OpenJDK 8 以来,DaCapo 的 H2 基准被建模为类似于 JDBCbench 的内存中(in-memory)基准,其性能得到了很好的提升,与此前的版本相比,OpenJDK 14 再次以微弱的优势获得了第一名
下面的例子输出就是DaCapo’s Avrora benchmark程序的类加载器数据 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 $ jmap -clstats AppClassLoader@0x00000007c0038190 0x00000007400752f8 538 773854 0x000000074004a708 dead org/dacapo
另外笔者选用业界通用的 java 测试套 dacapo[4] 比较 AArch64 和 x86_64 下 CodeCache 占用的大小。
Facebook团队还观察到,与C2相比,GraalVM在SpecJVM2008和DaCapo等基准测试中显示出了显著的年进步。
另一个典型的例子是渲染引擎Sunflow — 在运行DaCapo benchmark suite所附带的默认workload时,Graal的PEA判定约27%的堆分配(共占700M)可被虚拟化。
这一模式在 DaCapo 和 SPECjbb2015 测试中,停顿时间减少 20%-30%,尤其适合大堆内存(如 1TB)场景 。
DaCapo Benchmark(包含多种真实世界应用的套件):在 tradebeans, tradesoap 等高并发场景下,吞吐量提升 5-15%。
DaCapo Benchmark(包含多种真实世界应用的套件):在 tradebeans, tradesoap 等高并发场景下,吞吐量提升 5-15%。
有了 PGO 和 G1 GC,原生可执行文件的峰值性能可与 JVM 媲美: Renaissance 和 DaCapo 测试基准 有了这些选项,就可以利用原生镜像最大化应用程序的各个性能维度:启动时间
McKinley. 2008. http://www.cs.utexas.edu/users/speedway/DaCapo/papers/immix-pldi-2008.pdf [^7]: The CS