Java 如何使用VisualVM获取每个函数花费的时间

Java 如何使用VisualVM获取每个函数花费的时间,java,profiler,visualvm,Java,Profiler,Visualvm,VisualVM对我来说是一个不错但有点复杂的工具 我编写了一个包含许多函数的类(在Eclipse中)。如何获得每个函数调用的次数以及在执行过程中花费的时间的信息 对于详尽分析,需要使用替代工具,例如JProfiler 根据@TomasHurka所说的,您也可以使用VisualVM()进行个人资料分析,这可能会对您有所帮助 通过使方法返回某些内容,使用时间差来计算执行 long before = System.currentTimeMillis(); String responseFro

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


我编写了一个包含许多函数的类(在Eclipse中)。如何获得每个函数调用的次数以及在执行过程中花费的时间的信息

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


根据@TomasHurka所说的,您也可以使用VisualVM()进行个人资料分析,这可能会对您有所帮助

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

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

  long totalResponseTime=((System.currentTimeMillis() - before )/1000); 
您可以为函数的调用次数保留一个计数器值

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


谢谢,

请参阅和,以获取有关评测以及如何设置评测根和检测筛选器的更多信息。

这实际上很简单。运行您的程序,它将在VisualVM面板中自动显示为正在运行的进程。单击它,然后直接进入“采样器”选项卡。最后,点击CPU和宾果!在那里你可以看到每个函数所花费的时间!(太棒了!)

这是不对的。VisualVM可以做除记忆分析之外的许多其他事情。谢谢@TomasHurka我不知道这个功能,为了清晰起见,在接受的答案中添加了您的建议。如果您能提供更详细的解释,我们将不胜感激,谢谢,@Tomas HurkaI对不起,但您到底想让我解释什么?@TomasHurka他是对的,VisualVM看起来和其他Java程序一样复杂。此外,我还没有得到任何工具,可以完全满足OP在问题中的要求。链接工作正常。这应该是公认的答案。OP想要知道的最简单的解决方案。这应该是可以接受的答案。接吻原则。直接回答,而不是阅读上面另一个链接上的教程。