Visual VM 能否检测出哪个代码块占用了大部分处理时间?

Can Visual VM detect which block of the code is taking most of the processing time?

我试图找出方法代码的哪一部分花费的时间最长 运行。

熟悉的方法是使用 System.nanotimemillisecond 但我们可以像 Visual VM 一样使用 java 分析器吗?

是的。 Visual VM 可以做到这一点。我会建议密切关注昂贵方法的“自用时间”和“调用次数”。您会得到提示代码在哪里花费时间。

另外请记住,当您打开探查器时,您的代码会 运行 比平常慢一点,因为探查器正在收集数据。