什么是性能分析,如何对我的Java程序进行性能分析?

4

我听说过很多关于性能剖析的内容。这到底是什么呢?据我所知,这是一种性能测量方法,但是有没有人能够更加清晰地解释一下,让新手也能理解呢?此外,我使用Eclipse IDE来编写我的Java程序。我能否使用Eclipse IDE来进行性能剖析?在进行性能剖析时需要考虑哪些因素(我指的是最佳实践)?

4个回答

7

Profiling的基本作用是显示给定代码行被执行的频率以及在其中花费的时间(与其他行相比)。这使得很容易确定代码中花费大部分时间的位置。

它还可以找到代码在不做任何事情的情况下花费大量时间的地方:这是缓存未命中的典型标志,这就是你应该开始优化的地方。

通常,程序会在一个地方花费很多时间(比如说90%)。不幸的是,如果没有进行性能剖析,很难找到这个地方。猜测往往会出错。因此,如果你在错误的地方进行优化,这将毫无帮助:如果该行中总共花费的时间只有10%,那么你的代码只会变快10%(最好的情况下!)。但是,如果你成功地删除了花费90%时间的调用,你的程序将变快十倍

简而言之,这就是性能剖析。

Eclipse提供了内置的性能剖析功能,我听说它们非常好,但由于我不熟悉它们,所以让其他人回答吧。


2

Konrad是正确的,但性能分析还涵盖了程序的其他方面,比如内存消耗。


0

YourKit 是一款优秀的 Java 分析工具,可以很好地与 Eclipse 集成。它绝对物有所值,通常被认为是最好的 Java 分析工具。


-1

从我对使用Eclipse进行Java分析的少量研究来看,您可以使用JProfiler。不过,我并没有深入研究它,只是安装了它并快速浏览了一下。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接