JMH 1.20

Aleksey Shipilev shade at
Tue Jan 23 09:20:57 UTC 2018


JMH 1.20 is released and available on Maven Central. This release comes with the following features
and bugfixes:

*) dtraceasm profiler for Mac OS X, contributed by Vsevolod Tolstopyatov. This allows perfasm-like
functionality on Mac OS X. This requires functional dtrace, superuser privileges, and sometimes
additional system configuration. Try it out, and report problems at jmh-dev@!

*) jmh.separateClasspathJAR option to handle benchmarks with long classpath, base patch contributed
by David Karnok. This optionally handles the case of operating systems/environments that have limit
on the size of the command line.

*) Support enum params that override Object#toString(), contributed by Anuraag Agrawal. This fixes a
 nasty overlook in @Param handling for enums, that has the potential to break the benchmarks.	

*) The invocation order of @Setup/@TearDown methods on @State objects of different Scopes was messed
up, which may break benchmark assumptions.

*) External profilers should be called with before/afterTrial during warmup forks, for consistency

*) UX: Linux perf should not assume cycles/instructions counters are always available. This saves
some fatal errors on platforms that do not provide them (e.g. VMs without hardware performance
counters support). This also makes default perfasm profiler narrower, as we only report "cycles" by

*) UX: Make sure only a single profiler of given type is used

*) UX: perfasm provides better suggestions about PrintAssembly failures

*) UX: JMH Core Benchmarks includes more advanced timing tests

*) Make sure JMH builds and runs with JDK 9 GA -- mostly build time fixes, but some internal API
changes, and fixes for regressions too:

*) Typos and cleanups



More information about the jmh-dev mailing list