【发布时间】:2012-06-22 20:03:36
【问题描述】:
是否有类似 gprof 的 Java 分析器可以从 Linux 的终端运行? 我找到的所有工具都是 GUI 程序,我需要从终端运行它。
【问题讨论】:
标签: java linux terminal console profiling
是否有类似 gprof 的 Java 分析器可以从 Linux 的终端运行? 我找到的所有工具都是 GUI 程序,我需要从终端运行它。
【问题讨论】:
标签: java linux terminal console profiling
JVM 有一个名为HPROF 的内置分析器。您可以像这样在命令行中启用它:
java -agentlib:hprof=file=hprof.txt,cpu=samples MyClass
这将在程序完成时将配置文件信息转储到文本文件中。除了分析 CPU 使用情况,它还可以跟踪堆使用情况。
【讨论】:
depth 选项控制堆栈跟踪的大小。
java 的终端中运行而不进行分析。这可能会有所帮助:stackoverflow.com/questions/626940/…
开源工具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()
【讨论】:
--profile <pid>选项
JXInsight/OpenCore 具有术语/shell 报告插件(顶部、队列、堆栈等),它们将定期输出其计量和度量数据。也可以使用 Open API 访问此信息,该 API 允许在 JVM 中实时检查模型或使用快照文件句柄离线检查。两者都通过插件 API 得到支持,它是如何工作的。
http://www.jinspired.com/products/opencore(商业)
您不能使用 GUI 是否存在技术原因?它只是由工作流程习惯驱动的偏好吗?如果没有,那么您可以随时试用我们的免费 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 工具提供的一些功能,可以作为可选插件添加。
编辑: 如果您想要终端方法。请参阅此链接Triggering a Javadump。 它描述了 java 转储的创建。
【讨论】: