JMH 1.34

Aleksey Shipilev shade at redhat.com
Thu Dec 23 15:47:27 UTC 2021


Hi,

JMH 1.34 is released and available at Maven Central. This is a feature/maintenance release, and it 
contains the following fixes:

  *) Performance: as the next step in Compiler Blackholes support, JMH now defaults to compiler 
blackholes, when available. This would happen in mainline OpenJDK 17+, and probably all downstreams. 
Look in benchmark configuration logs for the option name to disable auto-detection if you run into 
problems.
   7903068: JMH: Enable compiler blackholes by default, if available

   References:
     https://shipilev.net/jvm/anatomy-quarks/27-compiler-blackholes/
     https://bugs.openjdk.java.net/browse/JDK-8259316

   Note: while we have not observed problems with compiler blackholes in the last year of explicitly 
enabling them during performance work, this is still the experimental JMH and JVM feature. JMH would 
print a warning message about this as well.

  *) UX: While Gradle is not a supported/tested build system in this project, we can still improve 
the incremental compilation for it a bit. Fix contributed by Taylor Wicksell, thanks!
   7903008: JMH: Support incremental annotation processing for Gradle Java plugin

   Note: clean, reproducible benchmarks are usually done after full clean recompilation, to avoid 
any build system bugs, whether it is Maven, Gradle, or something else. But this fix should help 
iterating on code during the development.

  *) UX: Various touch-ups to warning messages. Fixes contributed by Ian Kerins and Aarre Laakso, 
thanks!
   7903000: JMH: Fix error message for @setup helpers on a class missing @State
   7903067: JMH: Improve English grammar in error messages

  *) UX: In Panama work, -prof perfasm was shown to mis-attribute samples to wrong runtime stubs. 
Fix contributed by Nick Gasson, thanks!
   7903056: perfasm can report wrong stub name

  *) UX: Bootstrapping Kotlin benchmark from archetype would now pull a modern Kotlin version. Fix 
contributed by Vsevolod Tolstopyatov, thanks!
   7903023: Update Kotlin in Maven archetypes to the latest stable version

  *) Reliability: In rare cases, JMH failed hard when there was an opportunity to fail gracefully
   7903072: ForkedMain.nakedErr is not initialized on some paths

Enjoy, adopt it responsibly over the New Year break, and see you next year with the bug reports 
about this release!

-- 
Thanks,
-Aleksey



More information about the jmh-dev mailing list