开源Java Profilers

时间:2009-06-04 04:06:31

标签: java profiler

你们有什么建议与Java一起使用?

唯一要求是它应该是开源的,或者没有太昂贵的学术许可。

12 个答案:

答案 0 :(得分:60)

jdk6附带的VisualVM里面有一个基本的探查器。 VisualVM随jdk提供,所以如果你安装了jdk6,你也可能已经安装了它。

https://visualvm.github.io/

答案 1 :(得分:19)

你有一个列表here(在下面列出它们,以防万一链接被破坏)

  
      
  • JMemProf
  •   
  • JMP
  •   
  • DrMem
  •   
  • JTreeProfiler
  •   
  • NetBeans Profiler
  •   
  • JAMon API
  •   
  • JBoss Profiler
  •   
  • MessAdmin
  •   
  • 红外线
  •   
  • TomcatProbe
  •   
  • Java Interactive Profiler(JIP)
  •   
  • Profiler4j
  •   
  • 秒表
  •   
  • JMeasurement
  •   
  • DJProf
  •   
  • TIJmp
  •   
  • Allmon
  •   
  • Appspy
  •   
  • EurekaJ
  •   
  • JAPEX
  •   
  • OKTECH Profiler
  •   
  • 的Perf4
  •   

答案 2 :(得分:16)

阿。 Netbeans Profiler,developer.com的“年度产品”获奖者,2009年。

答案 3 :(得分:10)

Java有一个名为HProf的基本内置分析器。我发现将它提供的结果与更全面的特征分析器的结果进行比较是有用的。

答案 4 :(得分:5)

开源工具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()

答案 5 :(得分:4)

答案 6 :(得分:3)

如果您正在寻找一个简单易用的开源分析器,您可能需要查看Jip(Java Interactive Profiler)。它是根据BSD许可证发布的。我发现它对小程序非常有用。至少,它给出的结果比hprofs输出更容易理解。

答案 7 :(得分:1)

This快速,简单且非常有效:只需要进行一些线程转储,或者多次暂停程序,然后查看堆栈跟踪。

答案 8 :(得分:1)

Java Mission Control,它可以免费用于开发,并与Eclipse集成。它具有非常低的开销(<1%),因为它背负着JVM正在收集的数据。

它非常易于使用,它还可以提供您在其他分析工具中通常无法找到的大量信息,例如:延迟分析,在线记忆检查,详细的gc统计

答案 9 :(得分:0)

Netbeans IDE包含一个免费的分析器。

另外,如果我没记错的话,JProfiler的学术许可证(相对)便宜。

答案 10 :(得分:0)

JVM Monitor是一个与Eclipse集成的Java分析器,用于监视Java应用程序的CPU,线程和内存使用情况。

如果需要进一步深入分析,您可以使用其他工具(例如TPTPMemory Analyzer)作为下一步。

答案 11 :(得分:0)

考虑尖端https://github.com/jvm-profiling-tools/async-profiler

  

该项目是Java的低开销采样分析器,它不受Safepoint bias problem的影响。它具有特定于HotSpot的API,以收集堆栈跟踪并跟踪内存分配。探查器可与基于HotSpot JVM的OpenJDK,Oracle JDK和其他Java运行时一起使用。

它也内置在IntelliJ IDEA Ultimate:https://www.jetbrains.com/help/idea/cpu-profiler.html中。


也有类似的https://github.com/jvm-profiling-tools/honest-profiler

honest-profilerTree View之间的比较:https://github.com/jvm-profiling-tools/async-profiler/issues/77