2011-11-29 52 views
2

我需要来分析一个商业的Java应用程序,其中我没有源CPU的负荷。档案Java的CPU负载

我可以看到该应用程序是CPU密集型的,但我怎么能理解,如果CPU是忙着做FP操作,整数运算,还是其他什么东西?

如果我能找到我可以使用一些开源基准测试工具来模拟不同的硬件平台上的负荷,了解哪些CPU为我提供最好的价值,这是我的终极目标典型负载。

+0

你可以使用jprobe/jprofiler这样的工具进行反思 - 它会告诉你哪些方法/操作正在被调用,什么会消耗时间和内存。尽管他们本身可能不会执行CPU,但是您肯定可以查看sar/top/mpstat(即CPU跳转到哪里,拍摄快照)? – aishwarya

回答

4

如果您使用的是JDK 1.6.x,我强烈建议jvisualvm,它是$ JAVA_HOME/bin中的可执行文件。

这将帮助您确定CPU瓶颈,但如果你没有来源,你必须解决根本问题的能力有限。

+1

您需要下载JDK(不是JRE)或jvisualvm的独立版本。它可以附加到正在运行的程序!需要Oracle JVM。 –

1

我一直在使用dynaTrace produciton版,它对我有很大的帮助。低开销,对CPU和内存瓶颈的高可见性。

我推荐的dynaTrace。