分析器可以改变递归调用在Java中运行的时间吗?

wai*_*933 3 java recursion performance profiling

我正在努力用Java重构一些代码,所以我正在计算时间以确保代码不会变慢.但是,新的重构代码似乎比原始代码花费更多时间.值得注意的是,当我使用分析器运行代码时,新代码明显快于旧代码.主要区别在于旧代码是递归的,而新代码是迭代的.分析器可以将递归代码影响几十万,而只影响迭代代码1.5倍?

我在Mac OS X 10.6.6,3 GB RAM,2.4 GHz CPU上运行,使用默认的Netbeans 6.9分析器和Java 1.6.0__22 64位服务器.

(两种方法都使用System.currentTimeMillis()进行自我定时代码,以便我可以比较不使用分析器的时间,但这不应该明显影响事物.)

Kon*_*hik 7

是.大多数配置文件在方法调用级别执行检测.在递归形式中,分析器必须采用比迭代形式更多的测量.虽然分析器确实尝试从报告的数字中提取其开销,但这很难做到可靠.不同的剖析器会更好/更差.