如何使用perfasm/xperfasm/WinPerfAsmProfiler运行JMH



尝试在Windows上使用WinPerfAsmProfiler运行JMH基准测试给出以下错误:

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

这个问题,正如链接所暗示的,是你必须安装一个反汇编器插件。有几种实现。然而,由于自我审查和版权纳粹主义的原因,大多数实现的Windows二进制文件很难获得。其他信息可以在这个SO问题中找到(我已经更新了建议的构建步骤,在这里不再重复)。

您将遇到的另一个问题是,您必须以管理员身份运行分析会话。

关于配置perfasm的系统属性的其他信息,只能在AbstractPerfAsmProfilerWinPerfAsmProfiler的源代码中找到(至少从1.9.2版本开始)。

一个可能有用的提示:您可以通过在任何管理员命令提示符中运行xperf-setprofint 1221 cached将expperf的采样频率从1KHz增加到8KHz(并获得更精确的定时信息)。

最新更新