在进行性能分析时,可以信任 jmc(Java mission control) 吗?

Can one trust jmc(Java mission control) when doing performance analysis?

Jave 任务控制有一些很棒的功能。例如,可以看到应用程序的 "Hot Methods" 或 "Call Tree" 部分,当可以找到最常用的函数调用层次结构时。但我想知道,当您有兴趣寻找性能瓶颈(在时间方面)时,是否真的可以依赖分析结果?例如,可以将一些 "sleeps" 放入某些函数中,但分析器似乎不会指出它们。

Hot Methods 列出了最常执行 Java 代码的方法。如果您的应用程序处于本机代码或休眠状态,它将不会显示在 table.

查看“延迟”选项卡以查看延迟,即 Thread.sleep。

您可以使用 events->graph 选项卡查看睡眠、锁定...这将帮助您了解您的线程在它们上花费了多长时间