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

Собрать библиотеку hsdis для просмотра ассемблерного кода. Насколько глубока кроличья нора?

Библиотека hsdis удобна для преобразования листинга машинного кода, создаваемого JIT-компилятором, в читаемый ассемблерный код. Просмотр ассемблерных инструкций может пригодиться для проверки и отладки какого-то критического участка кода, который, например, чувствителен к latency.

При компиляции JIT-компилятор производит множество оптимизаций, и вывод ассемблерного кода помогает проверить, насколько эффективный код сгенерировал JIT-компилятор, посмотреть, были ли ожидаемые оптимизации сделаны, или что-то помешало JIT-компилятору их сделать.

Читать далее

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

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

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

Читать далее

Инструменты для мониторинга Java VM и копания внутри

Для написания высокоэффективного и производительного Java-кода, оптимизации кода под определенные требования, всегда полезно подключить к JVM определенные утилиты, чтобы собрать метрики производительности, заглянуть внутрь и оценить поведение системы под разными нагрузками и в различных ситуациях. Ниже я привожу список утилит, которые я часто использую для этой цели.

Читать далее