Java Microbenchmark Harness 1.12

В Maven Central появился патч-релиз JMH 1.12. Несмотря на кажущийся минорным номер версии, он добавляет несколько важных улучшений, добавляющих совместимость с JDK 9 Early Access с интегрированным Jigsaw.

JMH — Java Microbenchmark Harness — это оснастка Java для сборки, запуска и анализа нано/микро/милли/макро-бенчмарков, написанных на Java и других языках с целевой платформой JVM. Один из наиудобнейших инструментов, которые приятно иметь под рукой.

Project Jigsaw — это проект, посвященный реализации способности платформы Java SE и JDK масштабироваться на небольшие устройства и повышению управляемости кода, что достигается реализацией модульной системы, модуляризацией JDK, итп. Так как имеет насущный смысл прямо сейчас, пока не поздно, тестировать свои проекты на совместимость с JDK9+Jigsaw, смотреть что отвалилось, и писать отчеты разработчикам, инструменты типа JMH могут оказаться весьма полезными.

Судя по ченжлогу, за выпуск новой версии JMH надо благодарить Алексея Шипилёва (Shade), который работает на позиции Java Performance Engineer в Oracle.

Исходники проекта можно посмотреть в меркуриале: http://hg.openjdk.java.net/code-tools/jmh

Добавлены следующие изменения:

  • Компиляция на 9b111 падает с CNFE: javax.annotation.Generated. Возможно, это проблема в JDK, но мы нашли, как ее обойти. (кому интересно, могут глянуть связанный баг): https://bugs.openjdk.java.net/browse/CODETOOLS-7901643
  • Профилировщик GC падает на 9b111, которая форсирует более строгие настройки доступа до MXBeans. Мы переписали это более безопасным способом, и в качестве дополнительной плюшки получили исправление нескольких ошибок с JDK 6: https://bugs.openjdk.java.net/browse/CODETOOLS-7901645
  • Выхлоп JSON теперь показывает размер батчей, если эти данные вдруг понадобятся для SingleShot прогонов: https://bugs.openjdk.java.net/browse/CODETOOLS-7901649
  • Уже некоторое время, прогоны без форка (-f 0) стали рискованными с точки зрения корректности. Они оставлены для продвинутых пользователей и для отладки. Теперь мы будем более явно напоминать об этом: https://bugs.openjdk.java.net/browse/CODETOOLS-7901650

 java, jmh

©  Linux.org.ru