【发布时间】:2016-08-16 20:42:29
【问题描述】:
我目前正在寻找性能。为了衡量吞吐量,并确保我们不回归,我使用了出色的 JMH。
当我遇到一些缓慢的东西时,我想开始分析以查看发生了什么,根据this link JMH 的作者写道:
虽然 JMH 分析器可以帮助进行分析,但我认为它们不能 是正确分析的替代品。例如。 “堆栈”分析器是 很高兴浏览一下个人资料,但不适合认真的工作。
运行工作负载更长时间,并将您选择的分析器附加到 运行虚拟机。
我暗自希望我可以从命令行调整 JMH 测试,然后将类似 visualvm 之类的东西附加到它...但到目前为止我已经能够让它工作。我想这是个坏主意?如果我能分享我用来分析的代码以及我用来强制执行的代码,那将是理想的。
【问题讨论】:
-
虽然堆栈分析器不是很好,但 perf(或 perfasm)分析器对于找出热点的位置要好得多。尽管在微基准测试中您将看到一小部分代码的效果,并且在任何情况下,perf/asm 分析器都会出现问题(CPU 将报告计时可能是来自真实热点的一些指令)。请注意,perfm/asm 仅对 Linux 有效。
标签: java performance-testing visualvm jmh yourkit