测试指令
root@yeqiang-greatwall:/opt/SPECjvm2008# ./run-specjvm.sh -ikv
故障(无法访问 java.lang.CharSequence)
/tmp/SPECjvm2008/compiler.compiler/compiler/src/share/classes/javax/lang/model/element/Name.java:54: 无法访问 java.lang.CharSequence
错误的类文件: spec.benchmarks.compiler.SpecFileManager$CachedFileObject@63eea6e
错误的常量池标记:18,位于 10
请删除该文件或确保该文件位于正确的类路径子目录中。
public interface Name extends CharSequence {
^
ERROR: compiler exit code: 1
原因
查看openjdk,发现只安装了jre,未安装jdk
yeqiang@yeqiang-greatwall:~/桌面$ dpkg -l | grep openjdk
ii openjdk-8-jre:arm64 8u292-b10-0kylin1~20.04 arm64 OpenJDK Java runtime, using Hotspot JIT
ii openjdk-8-jre-headless:arm64 8u292-b10-0kylin1~20.04 arm64 OpenJDK Java runtime, using Hotspot JIT (headless)
解决
sudo apt install openjdk-8-jdk
复测
root@yeqiang-greatwall:/opt/SPECjvm2008# export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-arm64
root@yeqiang-greatwall:/opt/SPECjvm2008# ./run-specjvm.sh -ikv
故障(卡在startup.compiler.sunflow)
现象,程序运行到此处就不动了
--- --- --- --- --- --- --- --- ---
Benchmark: startup.compiler.sunflow
Run mode: static run
Test type: single
Threads: 1
Iterations: 1
Run length: 1 operation
Iteration 1 (1 operation) begins: Fri Jul 21 14:42:17 CST 2023
解决
参考:SPECjvm2008测试过程出现startup.compiler.sunflow堵塞一直卡住问题解决方法-云社区-华为云
stuck-sunflow.patch
*** src/spec/benchmarks/compiler/sunflow/Main.java.bak 2023-07-21 14:52:50.990321495 +0800
--- src/spec/benchmarks/compiler/sunflow/Main.java 2023-07-21 14:51:56.525694184 +0800
*************** public class Main extends spec.benchmark
*** 25,30 ****
--- 25,31 ----
super(bmResult, threadId, 2);
String[] args = new String[] {
"-proc:none",
+ "-nowarn",
"@" + srcsFile.getPath()};
compiler = new Compiler(args);
}
patch-and-build.sh
#!/bin/bash
export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-arm64
echo "copy stuck-sunflow.patch /opt/SPECjvm2008/"
patch -p0 < stuck-sunflow.patch
# 重新编译
unzip build-tools.zip
bash build-specjvm.sh
ls build/release/SPECjvm2008/
执行编译
root@yeqiang-greatwall:/opt/SPECjvm2008# bash patch-and-build.sh
编译成功
release:
[copy] Copying 131 files to /opt/SPECjvm2008/build/release/SPECjvm2008/src
[copy] Copied 37 empty directories to 1 empty directory under /opt/SPECjvm2008/build/release/SPECjvm2008/src
[copy] Copying 12 files to /opt/SPECjvm2008/build/release/SPECjvm2008/lib
[copy] Copying 448 files to /opt/SPECjvm2008/build/release/SPECjvm2008/docs
[copy] Copying 1 file to /opt/SPECjvm2008/build/release/SPECjvm2008/docs/javadoc
[copy] Copying 2 files to /opt/SPECjvm2008/build/release/SPECjvm2008/props
[copy] Copying 145 files to /opt/SPECjvm2008/build/release/SPECjvm2008/resources
[copy] Copied 37 empty directories to 1 empty directory under /opt/SPECjvm2008/build/release/SPECjvm2008/resources
[copy] Copying 3 files to /opt/SPECjvm2008/build/release/SPECjvm2008/license
[copy] Copying 1 file to /opt/SPECjvm2008/build/release/SPECjvm2008
[copy] Copying 1 file to /opt/SPECjvm2008/build/release/SPECjvm2008
[copy] Copying 1 file to /opt/SPECjvm2008/build/release/SPECjvm2008
[copy] Copying 1 file to /opt/SPECjvm2008/build/release/SPECjvm2008
[copy] Copying 1 file to /opt/SPECjvm2008/build/release/SPECjvm2008
[zip] Building zip: /opt/SPECjvm2008/build/release/SPECjvm2008/build-tools.zip
BUILD SUCCESSFUL
Total time: 9 seconds
build-tools.zip props report.sh SPECjvm2008.jar
docs README.txt resources src
lib redistributable_sources run-specjvm.cmd version.txt
license report.cmd run-specjvm.sh
复测
run-specjvm-local-build.sh
#!/bin/bash
export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-arm64
(
cd ./build/release/SPECjvm2008/
time java -jar SPECjvm2008.jar -ikv
)
中途CPU状态,基本满载
psensor
其中一个用例日志
Benchmark: mpegaudio
Run mode: timed run
Test type: multi
Threads: 8
Warmup: 120s
Iterations: 1
Run length: 240s
Warmup (120s) begins: Fri Jul 21 16:03:32 CST 2023
Warmup (120s) ends: Fri Jul 21 16:05:36 CST 2023
Warmup (120s) result: 174.93 ops/m
Iteration 1 (240s) begins: Fri Jul 21 16:05:36 CST 2023
Iteration 1 (240s) ends: Fri Jul 21 16:09:40 CST 2023
Iteration 1 (240s) result: 176.98 ops/m
Valid run!
Score on mpegaudio: 176.98 ops/m
--- --- --- --- --- --- --- --- ---
平均一个用例用时6分钟:Warmup (120s) + Iteration 1 (240s)
用例总数(bash run-specjvm.sh --help)
Benchmarks: startup.helloworld startup.compiler.compiler startup.compiler.sunflow startup.compress startup.crypto.aes startup.crypto.rsa startup.crypto.signverify startup.mpegaudio startup.scimark.fft startup.scimark.lu startup.scimark.monte_carlo startup.scimark.sor startup.scimark.sparse startup.serial startup.sunflow startup.xml.transform startup.xml.validation compiler.compiler compiler.sunflow compress crypto.aes crypto.rsa crypto.signverify derby mpegaudio scimark.fft.large scimark.lu.large scimark.sor.large scimark.sparse.large scimark.fft.small scimark.lu.small scimark.sor.small scimark.sparse.small scimark.monte_carlo serial sunflow xml.transform xml.validation
运行时间较长。。。