是否有类似gprof的Java分析器可以从Linux终端运行? 我找到的所有工具都是GUI程序,我需要从终端运行它。
答案 0 :(得分:9)
JVM有一个名为HPROF的内置探查器。您可以在命令行上启用它,如下所示:
java -agentlib:hprof=file=hprof.txt,cpu=samples MyClass
这将在程序完成时将配置文件信息转储到文本文件中。除了分析CPU使用情况外,它还可以跟踪堆使用情况。
答案 1 :(得分:8)
开源工具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()
答案 2 :(得分:3)
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
注意:我是这两种产品的产品架构师。
答案 3 :(得分:2)
答案 4 :(得分:0)
如果您想进行分析和监控。您可以使用Jvisualvm。
来自App网站的:
<强>描述强> Java VisualVM是一个直观的图形用户界面,可在给定的Java虚拟机(JVM *)上运行时提供有关基于Java技术的应用程序(Java应用程序)的详细信息。 Java VisualVM这个名称源于Java VisualVM在视觉上提供有关JVM软件的信息。
Java VisualVM将多个监视,故障排除和分析实用程序组合到一个工具中。例如,独立工具jmap,jinfo,jstat和jstack提供的大多数功能都已集成到Java VisualVM中。其他功能,例如JConsole工具提供的一些功能,可以作为可选插件添加。
修改强> 如您所希望的终端方法。请参阅此链接Triggering a Javadump。 它描述了java dump的创建。