有没有工具可以测量每个函数调用的执行时间,并找出给定开发Java J2SE项目的瓶颈?谢谢!
是的,有很多工具 - 例如Netbeans Profiler或eclipse等效工具。查看JavaPassion的这门课程以了解更多关于Java应用程序性能和分析工具。
还可以查看SO问题以了解开源Java分析工具。
如需更详细的操作步骤,请参考以下链接:http://sysdotoutdotprint.com/index.php/2017/08/01/turn-profiler-java/
测量是可以的,但是它是一种非常间接的找到瓶颈的方法。一个非常直接的方法是这样的:只需多次按下ctrl-break,然后检查线程堆栈。
任何瓶颈都将是一行代码,几乎总是一个函数调用,并且它会经常出现在某个线程的堆栈上。它越糟糕,它出现的频率就越高。
只需寻找任何这样经常出现的代码行。如果你能想办法少调用它,甚至不调用它,你将节省大量时间,保证有效。这是为什么。