Архив метки: performance

Как посмотреть, что и как компилирует JIT-компилятор?

В данной статье я кратко описываю диагностические флаги JVM HotSpot, с помощью которых можно посмотреть на результаты работы JIT-компиляторов JVM. Эта информация поможет в оптимизации приложения для low-latency и в поиске узких мест.

Читать далее

habr.com: Управление Java Flight Recorder

Не так давно в мире Java случилось грандиозное событие. Во всех актуальных версиях OpenJDK стал доступен Java Flight Recorder (или просто JFR).

Раньше этот механизм был доступен только в коммерческих версиях Java от корпорации Oracle версии 8 и более ранних. В какой-то момент его реимплементировали с нуля в OpenJDK 12, затем бекпортировали в OpenJDK 11, которая является LTS-версией. Однако вот OpenJDK 8 оставалась за бортом этого праздника жизни. Вплоть до выхода апдейта 8u272, в который наконец-то тоже бекпортировали JFR. Теперь все (за редким исключением) пользователи OpenJDK могут начинать использовать эту функциональность.

Статья на Хабре о том, как управлять JFR и как извлекать полезную информацию.

Новый JIT-компилятор Graal

Как уже говорилось в предыдущих статьях, в JVM HotSpot имеется два JIT-компилятора: C1 и C2. Первый компилятор — клиентский (client), который быстренько компилирует код при старте и первых минутах работы JVM, потом некоторое время собирает статистику по работе приложения, после чего в дело вступает компилятор C2 — серверный (server) — который делает более глубокие оптимизации и создает более быстрый машинный код.

Читать далее

Как jcmd помогает настроить JVM для low-latency

Утилиту jcmd добавили в Java 7 и с тех пор она считается главной утилитой, с помощью которой вы отныне будете заглядывать внутрь JVM и замерять все параметры ее работы. Все остальные утилиты типа jps, jstack, jinfo и проч. считаются теперь устаревшими и скоро в каком-то из будущих релизов JDK будут удалены. Предполагается, что jcmd заменит их всех. Давайте посмотрим, как работает утилита, и что полезного с ее помощью можно узнать о работающем приложении и как эта информация может нам пригодиться для настройки JVM и самого приложения с целью достижения low-latency.

Читать далее

Утилиты Linux для замера производительности

В данной статье я даю краткий обзор утилит Linux для сбора и анализа статистики важных аспектов работы какого-то определенного Linux-процесса или всей операционной системы в целом. Это, так сказать, быстрый набор «первой помощи», знания о котором пригодится всем разработчикам. Данная статья не пытается охватить все утилиты и все параметры этих утилит. За более подробной информацией вы всегда можете обратиться к страницам man по каждой программе.

Читать далее