是否有Java的控制台分析器?

是否有一个类似gprof的Java分析器,可以从Linux的terminal运行? 我find的所有工具都是GUI程序,我需要从terminal运行它。

JVM有一个名为HPROF的内置分析器。 你可以像这样在命令行中启用它:

java -agentlib:hprof=file=hprof.txt,cpu=samples MyClass 

这将在程序完成时将配置文件信息转储到文本文件。 除了分析CPU使用情况外,还可以跟踪堆使用情况。

开源工具jvmtop包含一个终端分析器,可能值得一看:

 JvmTop 0.7.0 alpha - 15:16:34, amd64, 8 cpus, Linux 2.6.32-27, load avg 0.41 http://code.google.com/p/jvmtop Profiling PID 24015: org.apache.catalina.startup.Bootstrap 36.16% ( 57.57s) hudson.model.AbstractBuild.calcChangeSet() 30.36% ( 48.33s) hudson.scm.SubversionChangeLogParser.parse() 7.14% ( 11.37s) org.kohsuke.stapler.jelly.JellyClassTearOff.parseScript() 6.25% ( 9.95s) net.sf.json.JSONObject.write() 3.13% ( 4.98s) ....kohsuke.stapler.jelly.CustomTagLibrary.loadJellyScri() 

JXInsight / OpenCore具有term / shell报告插件(顶层,队列,堆栈,…),可定期输出其计量和指标数据。 也可以使用Open API访问这些信息,Open API允许在JVM中实时检查模型,或使用快照文件句柄进行脱机。 两者都支持通过插件API,它是如何顶部,排队,…工作。

http://www.jinspired.com/products/opencore (商业)

有没有技术原因,你不能使用图形用户界面? 这是否只是由工作流习惯驱动的偏好? 如果不是,那么您总是可以试用我们免费的JXInsight / Opus Java版本 – 一种高效且可扩展的代码级别延迟性能测量解决方案,用于快速识别Java和JRuby应用程序中的热点。

http://www.jinspired.com/products/opus

注意:我是这两种产品的产品架构师。

如果你想要它的分析和监控。 你可以使用Jvisualvm 。

从应用程序网站:

描述 Java VisualVM是一个直观的图形用户界面,提供有关基于Java技术的应用程序(Java应用程序)在给定Java虚拟机(JVM *)上运行时的详细信息。 Java VisualVM的名字来源于Java VisualVM直观地提供了有关JVM软件的信息。

Java VisualVM将多个监视,故障排除和剖析实用程序组合到一个工具中。 例如,独立工具jmap,jinfo,jstat和jstack提供的大部分功能已经集成到Java VisualVM中。 其他功能,如JConsole工具提供的一些功能,可以添加为可选插件。

编辑:正如你想要的终端方法。请参阅此链接触发Javadump 。 它描述了Java转储的创建。