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