如何衡量Java开发中的性能

时间:2010-01-28 09:22:03

标签: java performance

是否有任何工具可以测量每个函数调用的执行时间,并找出给定的开发java j2se项目的瓶颈?谢谢!

7 个答案:

答案 0 :(得分:9)

使用分析工具,例如YourKitJProfilerHPROF(这是一个命令行工具)。

答案 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)

Java JDK在bin文件夹下附带JVisualVM,一旦您的应用程序服务器(例如正在运行),您就可以运行visualvm并将其连接到localhost,这将为您提供内存分配并使您能够执行堆转储

enter image description here

有关如何启用的更详细步骤: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