如何使用VisualVM来获取每个函数的成本

VisualVM对我来说是一个不错但有点复杂的工具。

我写了一个包含许多函数的类(在Eclipse中)。 如何获取每个函数调用的时间以及执行期间的成本时间信息?

请参阅使用VisualVM进行概要分析,第1部分和使用VisualVM进行概要分析,第2部分以获取有关概要分析以及如何设置概要分析根和检测filter的更多信息。

它实际上很简单。 运行您的程序,它将自动显示为VisualVM面板中的正在运行的进程。 单击它,然后直接进入Sampler选项卡。 Finnaly,点击CPU和宾果! 在那里你可以看到每个function所需的时间! (真棒!)

对于详尽的分析,需要使用替代工具,例如JProfiler。

根据@TomasHurka所说,您可以使用VisualVM进行分析( https://blogs.oracle.com/nbprofiler/entry/profiling_with_visualvm_part_1

这可能对你有点帮助..

使用时差通过使方法返回某些内容来计算执行。

long before = System.currentTimeMillis(); String responseFromMethod=methodCall(); // String value returned from method long totalResponseTime=((System.currentTimeMillis() - before )/1000); 

您可以为调用函数的次数保留计数器值。

对于VisualVM,您可以使用Eclipse MAT来分析heapdump。 它将解释您的计划需要改进的地方。

谢谢,