是否有任何工具可以测量每个函数调用的执行时间,并找出给定的开发java j2se项目的瓶颈?谢谢!
答案 0 :(得分:9)
答案 1 :(得分:4)
您正在寻找一位探查器。我知道NetBeans包含一个不错的one。
您还可以查看此问题:Open Source Java Profilers。
似乎JDK 1.6附带了一个基本的探查器。所以也许你想先尝试一下。它应该包含在你的jdk6附带的VisualVM中:visualvm profiler
答案 2 :(得分:1)
是的,有很多工具 - 像Netbeans Profiler或eclipse等同的配置文件。查看t his course of JavaPassion以了解有关分析工具和Java应用程序性能的更多信息。
另请查看此SO question以查找开源Java配置文件。
答案 3 :(得分:0)
您可以尝试面向方面编程来拦截每个方法调用并计算持续时间。
答案 4 :(得分:0)
测量很好,但是找到瓶颈是非常间接的方式。一个非常直接的方法是:只需按几次ctrl-break,然后检查线程栈。
任何瓶颈都是一行代码,几乎总是函数调用,它经常出现在某个线程的堆栈上。它越糟糕,它出现的次数就越多。
只需寻找任何经常出现的代码行。如果你能弄清楚怎么称呼它,或者根本没有,你将节省一大堆时间,保证。 Here's why.
答案 5 :(得分:0)
有关如何启用的更详细步骤:http://sysdotoutdotprint.com/index.php/2017/08/01/turn-profiler-java/
答案 6 :(得分:0)
考虑最精确,最无干扰的async-profiler。
IntelliJ IDEA Ultimate具有内置的探查器支持: https://www.jetbrains.com/help/idea/cpu-profiler.html