我最近發現我編寫的程序出乎意料地很慢,爲了修復它,我想分析它。到目前爲止,我選擇的工具都是Yourkit和hprof,但是我一直無法找到所需的功能。特定軟件包的Scala/Java性能分析
理想情況下,我希望MATLAB Profiler style heat-map適用於我所有的源文件,顏色越深表示在該行中花費的時間越多。我意識到這是很多要問,所以如果它不存在,我不會感到驚訝。
如果以上是不可能的,我希望能夠執行hprof cpu = samples樣式分析,而不是吐出項目中執行的所有類的所有方法的列表,我想以便能夠排除名稱空間(例如:java。,scala.collection。),並且有時間歸因於這些方法被重新分配到堆棧中的最低級別,其中方法在排除的名稱空間中被稱爲NOT。舉例來說,如果我有類似如下的
def sillyMethod: Unit = {
0.until(1000000).map{ i =>
(0 until 1000).toSeq + 1) == (0 until 1000).toSeq + 2)
}
}
我寧願知道我所有的時間都花在sillyMethod,而不是在Seq.equals。這可能與任何可用的分析器?
編輯:我目前使用sbt執行我的命令和IntelliJ IDEA進行實際編輯。