Open zifeihan opened 10 months ago
你好呀,我比较好奇有没有考虑会测试Dacapo,Rena
你好呀,我比较好奇有没有考虑会测试Dacapo,Rena
谢谢关注,这个近期会进行测试并给出详细测试报告,欢迎持续关注。
java -jar dacapo-9.12-MR1-bach.jar -s small avrora fop h2 jython lusearch lusearch-fix xalan pmd
测试过,这几个测试全部正常通过。因为版本问题不是所有的测试用例都能通过,因此没有给出测试报告,后续会给出详细测试报告。
SPECjvm2008 测试包链接:https://www.spec.org/jvm2008/
bishengJDK 版本为:https://gitee.com/openeuler/bishengjdk-11/commit/810e92efa5dca9ff556277fc4eed076fe0630e5e JDK11U RV32 版本为:https://github.com/openjdk-riscv/jdk11u/commit/cfc5c12f9bd5a0603736217ed3006773f8cf106a 通过测试 RV32 C2,RV32 解释器,BishengJDK RV64 C2 这三个版本,得出三者间的性能差异。 宿主机环境:C8服务器,128核,256G内存。 测试环境:目前还没有 RISC-V 32 位可运行linux的物理机器,因此开发和测试都是使用qemu模拟环境。搭建模拟环境参考:https://github.com/openjdk-riscv/jdk11u/wiki/Build-OpenJDK11-for-RV32G 测试JVM参数均为:
-Xmx2048m -Xms2048m
,RV32 解释器版本和 RV32 C2 使用同一个JDK11U可执行程序,只是RV32 解释器版本需要另外多加:-Xint
参数用来开启模版解释执行,因为RV32G最大堆内存只有4个G,但是bishengJDK 64位可以使用更大堆内存,为了屏蔽内存差异,因此这里无论是 bishengJDK 还是 JDK11U RV32 版本都设置使用2048m,在 java 程序中往往将 -Xmx 和-Xmx设置为一样的,是为了获取更好的性能,防止内存抖动。执行 SPECjvm2008 测试过程中指定 -bt 32 是设置 并发线程为32,默认为cpu核数,如果并发线程设置太大会导致线程占用内存过多,从而导致OutOfMemoryError异常发生。BishengJDK RV64 C2 执行命令如下:
/home/zifeihan/bishengjdk-11/build/linux-riscv64-normal-custom-release/jdk/bin/java -Xmx2048m -Xms2048m -jar SPECjvm2008.jar -ikv -ict -coe -bt 32 >a.log
JDK11U RV32 解释器 执行命令如下:
/home/zifeihan/jdk11u/build/linux-riscv32-normal-custom-release/jdk/bin/java -Xmx2048m -Xms2048m -Xint -jar SPECjvm2008.jar -ikv -ict -coe -bt 32 >c.log
JDK11U RV32 C2 执行命令如下:
/home/zifeihan/jdk11u/build/linux-riscv32-normal-custom-release/jdk/bin/java -Xmx2048m -Xms2048m -jar SPECjvm2008.jar -ikv -ict -coe -bt 32 >b.log
BishengJDK RV64 C2 测试结果如下:
SPECjvm2008_bishengJDK64C2.log
JDK11U RV32 解释器 测试结果如下:
SPECjvm2008_jdk11u32Xint.log
JDK11U RV32 C2 测试结果如下:
SPECjvm2008_jdk11u32C2.log
通过测试结果中的测试开始时间和最终结束时间统计如下:
通过测试结果/报告 OPS 统计如下:
测试结论: