开源Java Profiler [关闭]


94

你们推荐Java使用什么?

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


4
当您说开源时,您是说免费吗?它们具有不同的含义。您是否有关于_inexpensive探查器的问题?
罗伯特·蒙提亚努

3
自由如自由,还是免费如自由?哦,混乱!
Tarski 2010年

Answers:


61

jdk6附带的VisualVM里面有一个基本的探查器。VisualVM随jdk一起提供,因此,如果安装了jdk6,则可能也已安装了它。

https://visualvm.github.io/


3
VisualVM事件探查器是NetBeans中的探查器的独立版本。这是一个非常好的开始。
托尔比约恩Ravn的安德森

2
绝对在以下位置下载最新版本:visualvm.dev.java.net。另外:这是NetBeans使用的探查器。
Peterdk '04

我以前曾经使用VisualVM过成功,但是在尝试配置Tomcat应用程序时它崩溃了。这对我有用
Lambart,

21

您在此处有一个列表(在下面列出它们,以防万一链接损坏)

  • JMemProf
  • JMP
  • 博士
  • JTreeProfiler
  • NetBeans探查器
  • JAMon API
  • JBoss探查器
  • 邮件管理
  • 红外线
  • Tomcat探针
  • Java Interactive Profiler(JIP)
  • Profiler4j
  • 跑表
  • 测量
  • DJ专业版
  • TIJmp
  • 阿蒙
  • 应用程式
  • 尤里卡
  • 佳宝
  • OKTECH探查器
  • Perf4j

1
您可以将其添加到列表中:github.com/jvm-profiling-tools/honest-profiler
Lambart,


10

Java具有一个内置的基本探查器HProf。我发现将其提供的结果与功能更全面的分析器的结果进行比较很有用。


1
我已经使用HPROF多年了-尽管它可能并不漂亮,但它帮助我解决了无数内存和性能问题。
甘道夫

1
HPROF通常会找到不同的观点来进行优化。在YourKit不再给我明显的优化点之后,我经常使用它。
彼得·劳瑞

2
从jdk 9 开始
jeps/

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()

4

3
我从来没有能够设置TPTP。也许我太笨了,无法使用它。
09年

@quant_dev:我也遇到了同样的问题,但是不知何故设法将其突然设置了(Eclipse重新启动还是其他原因?)。但是,当我使用它时,结果证明它几乎没有用,速度非常慢,而且资源匮乏,以至于我不得不杀死日食。我在网上找到的一些参考资料中提到的一些更有用的视图在使用Eclipse 3.5的当前实现中似乎也不再存在。因此,目前基本上这只是一个巨大的无用BLOB。
x4u 2010年

1
Eclipse TPTP看起来很成熟,但是速度非常慢。我不明白为什么...
Roalt

4
不幸的是TPTP现在有其最终版本(v4.7.2)。它已被归档,不再是Eclipse同时发行版的一部分。
joelittlejohn 2011年


2

Java Mission Control,可免费用于开发,并且与Eclipse集成。它具有非常低的开销(<1%),因为它无论如何都依赖JVM收集的数据。

它非常易于使用,并且还可以提供很多其他分析工具通常找不到的信息,例如延迟分析,在线内存检查,详细的gc统计信息


1

是快速,肮脏且非常有效的方法:只需执行几次线程转储,或将程序暂停几次,然后查看堆栈跟踪。


1

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

该项目是Java的低开销采样分析器,不会遇到Safepoint偏差问题。它具有针对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

async-profiler和之间的比较honest-profilerhttps : //github.com/jvm-profiling-tools/async-profiler/issues/77


关于async-profiler的精美
Vadzim

0

Netbeans IDE包含一个免费的探查器。

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


1
OP确实要求“不太昂贵的学术许可”。JProfiler的单个学术许可价格为199美元
masher

1
他要求提供开源或具有廉价学历的东西。在我看来,199美元的工具价格相当便宜,普通许可证的价格为499美元。
Paul Morie 2009年

0

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

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

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.