Статьи

Измерение производительности ваших методов с использованием JMH в Java

Измерьте производительность Java!

Начиная с JDK-12 , JDK поставляется с JMH  (Java Microbenchmark Harness). Это инструментарий, который помогает правильно реализовывать Java-микробенчмарки. JMH разрабатывается теми же людьми, которые внедряют виртуальную машину Java (JVM), чтобы они знали внутреннее устройство и то, как Java выполняет оптимизацию во время выполнения.


Вам также может понравиться:
JMH: Benchmark REST API

Почему JMH?

Существует множество оптимизаций, которые JVM или базовое оборудование могут применить к вашему компоненту, когда тест производительности выполняет этот компонент изолированно. Эти оптимизации не могут быть применимы, когда компонент работает как часть более крупного приложения. Таким образом, неправильно внедренные микробенчмарки могут заставить вас поверить, что производительность вашего компонента лучше, чем будет на самом деле.

Всякий раз, когда мы сталкиваемся с проблемой, мы склонны решать ее рекурсивно, итеративно или с помощью встроенных методов, предоставляемых на нашем языке. После кодирования мы склонны путать, что для данного набора данных (больших, маленьких, фиксированных) у меня будет лучшее преимущество — использовать встроенные методы или метод 1 или метод 2 или … метод 3 .

В этой статье я буду ссылаться на метод как на отдельный  компонент , так как моя задача — показать вам, как тестировать ваши методы с использованием JMH в соответствии с их производительностью.

Перед началом работы необходимо выполнить несколько предварительных условий. Если у вас нет JDK 12, вам нужно импортировать зависимости в свой проект, для чего вы можете загрузить JAR-файлы для создания проекта maven и добавить следующие зависимости:


Джава