你们能推荐一些与Java一起使用的工具吗?
唯一的要求是它必须是开源的,或者有不太昂贵的学术许可证。
JDK6自带VisualVM,内含基本分析器。 如果已安装JDK6,则很可能已经安装了VisualVM。
VisualVM
并且取得了成功,但是在尝试对一个 Tomcat 应用程序进行分析时它却崩溃了。这个链接对我很有帮助:https://github.com/jvm-profiling-tools/honest-profiler - Lambart这里有一个列表(在下面列出,以防链接失效),涉及到的是 IT 技术。
- JMemProf
- JMP
- DrMem
- JTreeProfiler
- NetBeans Profiler
- JAMon API
- JBoss Profiler
- MessAdmin
- InfraRED
- TomcatProbe
- Java Interactive Profiler (JIP)
- Profiler4j
- Stopwatch
- JMeasurement
- DJProf
- TIJmp
- Allmon
- Appspy
- EurekaJ
- japex
- OKTECH Profiler
- Perf4j
Java内置了一个基本的分析器,称为 HProf。我发现使用它提供的结果与更全面的特性分析器提供的结果进行比较很有用。
开源工具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()
async-profiler
和honest-profiler
之间的比较,请参见:https://github.com/jvm-profiling-tools/async-profiler/issues/77。如果你正在寻找一个简单易用的开源分析器,你可能想看一下 Jip(Java交互式分析器)。它是在BSD许可证下发布的。我发现它对于小程序非常有用。至少,它给出的结果比hprof更易于理解。
Java Mission Control是一款与Eclipse集成的免费开发工具。由于其基于JVM收集的数据进行分析,因此其性能损耗非常低(小于1%)。
这款工具易于使用,同时可以提供其他性能分析工具所没有的许多信息,例如延迟分析、在线内存检查、详细的垃圾回收统计信息等。