我需要对一款商业Java应用程序进行CPU负载剖析,但是我没有源代码。
我能看到该应用程序受CPU限制,但我如何理解CPU是否在忙于执行FP操作、整数操作或其他操作?
如果我能找到一个典型的负载,我可以使用一些开源基准测试工具在不同的硬件平台上模拟负载,以了解哪个CPU为我提供最佳价值,这是我的最终目标。
我需要对一款商业Java应用程序进行CPU负载剖析,但是我没有源代码。
我能看到该应用程序受CPU限制,但我如何理解CPU是否在忙于执行FP操作、整数操作或其他操作?
如果我能找到一个典型的负载,我可以使用一些开源基准测试工具在不同的硬件平台上模拟负载,以了解哪个CPU为我提供最佳价值,这是我的最终目标。
如果您正在使用JDK 1.6.x,我强烈推荐使用jvisualvm。这是$JAVA_HOME/bin中的一个可执行文件。
它将帮助您识别CPU瓶颈,尽管如果您没有源代码,您将有限的能力来解决潜在问题。
我很喜欢使用商业软件JProfiler http://www.ej-technologies.com/products/jprofiler/overview.html,它使我受益匪浅。(虽然是2-3年前的事了,但是这个软件应该现在还是不错的:))
我一直在使用dynaTrace生产版,它对我帮助很大。低开销,高可见性,可以查看CPU和内存瓶颈。
我强烈推荐dynaTrace。