SPECjvm2008_1_01 openjdk8 报错Name.java:54: 无法访问 java.lang.CharSequence 卡startup.compiler.sunflow

测试指令

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状态,基本满载

扫描二维码关注公众号,回复: 16153949 查看本文章

 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

运行时间较长。。。

猜你喜欢

转载自blog.csdn.net/hknaruto/article/details/131851617