我有一个相当复杂的Java应用程序,它正在利用大量CPU资源,想知道是否有任何建议的配置工具可以用来确定CPU使用率的原因。我的目标是找出在代码中使用大部分CPU时间的位置。
我有一个相当复杂的Java应用程序,它正在利用大量CPU资源,想知道是否有任何建议的配置工具可以用来确定CPU使用率的原因。我的目标是找出在代码中使用大部分CPU时间的位置。
我曾在Linux上使用过jProfiler和YourKit。但你可能会发现通过运行最近JDK的jconsole
来查找你想要的信息是更好的选择。关于如何使用它的良好信息,请参考:http://java.sun.com/developer/technicalArticles/J2SE/jconsole.html
Netbeans拥有良好的内置分析器。NB在Ubuntu 9.10上运行得相当不错。
如果您的问题无法在开发中观察到,您可以将分析器附加到远程JVM(您的生产环境)。您必须配置主机JVM以接受来自分析器的JMS / JConsole连接。JMS / JConsole实时监视可视化图表看起来非常棒。
我在eclipse IDE中使用了Visual VM。如果你不在一个IDE上,jhat和jconsole会有帮助。Google jhat以获取更多信息。
如果您使用Sun Java 6,请学习如何在运行问题程序的计算机上使用JDK中的jvisualvm。
Jvisualvm可以解答大部分您的问题,能轻松地附加到已经运行的程序,并且是免费的。