Dear all,
I have one question on how to run Java benchmark.
I built jar files by executing the following command " on an x86_64
machine. Then, based on [1], I tried to execute a Java benchmark program.
However, I got an exception. I can find the BenchmarkList file, but it is
not included in the jar file. What do I do mistakes?
% mvn -B -DskipTests
-Dorg.slf4j.simpleLogger.log.org.apache.maven.cli.transfer.Slf4jMavenTransferListener=warn
clean install
...
% java --illegal-access=warn -jar ./performance/target/benchmarks.jar
'.*IntBenchmarks.setIntDirectly' -w 2 -r 2 -f 2
WARNING: Illegal reflective access by org.openjdk.jmh.util.Utils
(file:/home/ishizaki/Arrow/arrow/java/performance/target/benchmarks.jar)
to field java.io.Console.cs
Exception in thread "main" java.lang.RuntimeException: ERROR: Unable to
find the resource: /META-INF/BenchmarkList
at
org.openjdk.jmh.runner.AbstractResourceReader.getReaders(AbstractResourceReader.java:98)
at
org.openjdk.jmh.runner.BenchmarkList.find(BenchmarkList.java:122)
at org.openjdk.jmh.runner.Runner.internalRun(Runner.java:263)
at org.openjdk.jmh.runner.Runner.run(Runner.java:209)
at org.openjdk.jmh.Main.main(Main.java:71)
% find performance/ -name BenchmarkList
performance/target/test-classes/META-INF/BenchmarkList
% jar tvf performance/target/benchmarks.jar | grep BenchmarkList
11325 Tue Sep 22 07:00:56 GMT 2020
org/openjdk/jmh/runner/BenchmarkListEntry.class
7235 Tue Sep 22 07:00:56 GMT 2020
org/openjdk/jmh/runner/BenchmarkList.class
[1] https://github.com/apache/arrow/pull/8214#issuecomment-696450195
Best Regards,
Kazuaki Ishizaki