Как запустить JMH, используя perfasm/xperfasm/WinPerfAsmProfiler

Попытка запустить тест JMH в Windows, используя WinPerfAsmProfiler выдает следующую ошибку:

ERROR: No address lines detected in assembly capture, make sure your JDK is PrintAssembly-enabled:
    https://wikis.oracle.com/display/HotSpotInternals/PrintAssembly

1 ответ

Решение

Проблема, как следует из ссылки, заключается в том, что вы должны установить плагин дизассемблера. Есть несколько реализаций. Тем не менее, по причинам самоцензуры и нацизма авторских прав, двоичные файлы Windows большинства реализаций трудно найти. Дополнительная информация может быть найдена в этом вопросе SO (в котором я обновил предложенные шаги сборки и не буду повторять их здесь).

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

Дополнительную информацию о системных свойствах, которые настраивают perfasm, можно найти только в исходном коде AbstractPerfAsmProfiler а также WinPerfAsmProfiler (по крайней мере, с версии 1.9.2).

Возможно полезный совет: вы можете увеличить частоту дискретизации xperf с 1 кГц до 8 кГц (и получить более точную информацию о времени), запустив xperf-setprofint 1221 cached в любой командной строке администратора.

Другие вопросы по тегам