Java 为什么visualvm中的“总时间”列与运行时持续时间不同?

Java 为什么visualvm中的“总时间”列与运行时持续时间不同?,java,profiling,visualvm,jvisualvm,Java,Profiling,Visualvm,Jvisualvm,我已经在java进程上用visualvm运行了45分钟的CPU探查器,但是“总时间”列显示只经过了大约104000ms,即104秒,它增长了,但增长缓慢 这显然没有映射到实际物理时间,因为我希望看到45*60*1000毫秒过去了,而不是104*1000毫秒。它测量的是什么?因为工具提示悬停显示了在该方法上的所有调用(包括进一步的方法调用)所花费的时间。即方法特定的挂钟时间,包括方法中完成的调用 您可以将其与总CPU时间进行比较,以了解处理器对时间的使用效率。您能否提供一个屏幕,以便我们知道您的要

我已经在java进程上用visualvm运行了45分钟的CPU探查器,但是“总时间”列显示只经过了大约104000ms,即104秒,它增长了,但增长缓慢


这显然没有映射到实际物理时间,因为我希望看到45*60*1000毫秒过去了,而不是104*1000毫秒。它测量的是什么?

因为工具提示悬停显示了在该方法上的所有调用(包括进一步的方法调用)所花费的时间。即方法特定的挂钟时间,包括方法中完成的调用


您可以将其与总CPU时间进行比较,以了解处理器对时间的使用效率。

您能否提供一个屏幕,以便我们知道您的要求?您是在询问吗?@Andronicus我已向question@Naman是的,这就是我要说的。我已经运行探查器45分钟了,但列“总时间”仅显示了104秒。为什么在我运行探查器45分钟时,该列的总时间为104秒?@ABC,因为您正在运行其他程序。你不认为CPU专用于你的程序,是吗?此外,除非你真的在消耗CPU,否则时间可能不会太长,这就是热点更容易检测和改进的原因。我有一个繁忙的while循环,我想它会占用CPU 100%的时间?很难说。试着在循环中计算散列,看看当你实际做某事时,它是否会产生影响。采样器往往是一个更有用的工具,至少在我的经验中是这样。没有分析器的开销,仍然可以高效地找到热点。