1

我对 JVM 上的 Clojure 和 Scala 的一些性能感到困惑,我想知道理解神秘功能代码的最佳方法是什么。我应该学习了解字节码,还是使用分析器来猜测性能?请有经验的人推荐这方面的工具吗?我知道 JD ( http://java.decompiler.free.fr ) 是最好的反编译器。这是我应该走的路线吗?

4

1 回答 1

2

反编译器几乎不会告诉您运行中代码的性能。读取字节码只是偶尔对理解行为有用,而对于更动态的特征,它的用处就更小了。这有几个原因。首先是基于静态分析进行性能调整是不明智的,通常只会捕获公然的咆哮,并可能导致您过早地进行优化。第二个是在 VM 中运行的内容与字节码不同。Just In Time 编译器将进行许多优化,例如倾斜短方法。

要查看应用程序在做什么,性能方面,你真的需要一个分析器。弄清楚你的堆使用情况以及垃圾收集需要多少时间,然后使用采样分析器查看哪些代码正在花费时间。IBM 的 Health Center 是一个不错的选择,或者您可以尝试 Visual VM 或其他任何数量的。

于 2013-02-08T08:18:34.583 回答