Hi,

I follow the instruction on 
https://htmlpreview.github.io/?https://github.com/openjdk/jdk/blob/master/doc/testing.html#microbenchmarks
 to run a new microbenchmark.
I got error message as follows.
java.lang.UnsupportedClassVersionError: Preview features are not enabled for 
org/openjdk/bench/java/lang/reflect/proxy/jmh_generated/ProxyBench_newProxyInstance1i_jmhTest
 (class file version 60.65535). Try running with '--enable-preview'
        at java.base/java.lang.ClassLoader.defineClass1(Native Method)
        at java.base/java.lang.ClassLoader.defineClass(ClassLoader.java:1010)
        at 
java.base/java.security.SecureClassLoader.defineClass(SecureClassLoader.java:150)
        at 
java.base/jdk.internal.loader.BuiltinClassLoader.defineClass(BuiltinClassLoader.java:855)
        at 
java.base/jdk.internal.loader.BuiltinClassLoader.findClassOnClassPathOrNull(BuiltinClassLoader.java:753)
        at 
java.base/jdk.internal.loader.BuiltinClassLoader.loadClassOrNull(BuiltinClassLoader.java:676)
        at 
java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:634)
        at 
java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:182)
        at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:519)
        at java.base/java.lang.Class.forName0(Native Method)
        at java.base/java.lang.Class.forName(Class.java:377)
        at org.openjdk.jmh.util.ClassUtils.loadClass(ClassUtils.java:72)
        at 
org.openjdk.jmh.runner.BenchmarkHandler.<init>(BenchmarkHandler.java:68)
        at org.openjdk.jmh.runner.BaseRunner.runBenchmark(BaseRunner.java:232)
        at org.openjdk.jmh.runner.BaseRunner.doSingle(BaseRunner.java:138)
        at 
org.openjdk.jmh.runner.BaseRunner.runBenchmarksForked(BaseRunner.java:75)
        at org.openjdk.jmh.runner.ForkedRunner.run(ForkedRunner.java:72)
        at org.openjdk.jmh.runner.ForkedMain.main(ForkedMain.java:84)


If I add an extra flag “—enable-preview” , the micro bench will work.
make test TEST="micro:java.lang.reflect" MICRO="VM_OPTIONS=--enable-preview"

I am using jmh from make/devkit/createJMHBundle.sh, which gives me 
jmh-core-1.26.jar
Is that jmh-core too old or we should adjust RunTest.gmk a little bit to have 
that flag?

Does Openjdk CI run benchmarks to detect performance regression?  If so,  could 
you point me to a guideline of microbenmark?
I lack of the basic sense of a “good” microbenchmark.  My concern is the new 
micro I added is too long to break the established test run.

Thanks,
--lx


Reply via email to