我有一个旧的应用程序,一个 JAR 文件,它经过了一些增强。基本上要修改部分代码,同时修改部分逻辑。
将旧版本与新版本进行比较,新版本比旧版本慢约 2 倍。
我正在尝试缩小导致速度变慢的原因,但我发现自己正在使用 System.println 和 System.currentTimeMillis() 来测量某些 for 循环的时间。这真的变得非常乏味。
有没有一种 Java 性能工具可以帮助我弄清楚为什么新 JAR 比旧 JAR 慢大约 2 倍?
提前致谢。
最佳答案
JProfiler具有比较CPU快照的能力。记录新旧JAR文件的执行情况并保存快照(如果最后JVM退出,请配置“JVM退出”触发器来保存快照)。
然后通过“ session ->在新窗口中比较快照”打开快照比较窗口并添加两个快照。热点比较将如下所示(在本例中设置了 View 过滤器):
它将立即向您显示哪些方法导致执行时间增加。
分析执行时间差异的另一种方法是调用树比较,如下所示:
免责声明:我的公司开发 JProfiler。
关于java - 衡量 Java 程序性能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9550174/