我听说过很多关于性能剖析的内容。这到底是什么呢?据我所知,这是一种性能测量方法,但是有没有人能够更加清晰地解释一下,让新手也能理解呢?此外,我使用Eclipse IDE来编写我的Java程序。我能否使用Eclipse IDE来进行性能剖析?在进行性能剖析时需要考虑哪些因素(我指的是最佳实践)?
Profiling的基本作用是显示给定代码行被执行的频率以及在其中花费的时间(与其他行相比)。这使得很容易确定代码中花费大部分时间的位置。
它还可以找到代码在不做任何事情的情况下花费大量时间的地方:这是缓存未命中的典型标志,这就是你应该开始优化的地方。
通常,程序会在一个地方花费很多时间(比如说90%)。不幸的是,如果没有进行性能剖析,很难找到这个地方。猜测往往会出错。因此,如果你在错误的地方进行优化,这将毫无帮助:如果该行中总共花费的时间只有10%,那么你的代码只会变快10%(最好的情况下!)。但是,如果你成功地删除了花费90%时间的调用,你的程序将变快十倍。
简而言之,这就是性能剖析。
Eclipse提供了内置的性能剖析功能,我听说它们非常好,但由于我不熟悉它们,所以让其他人回答吧。
Konrad是正确的,但性能分析还涵盖了程序的其他方面,比如内存消耗。