开源 Java Profiler [关闭]
Posted
技术标签:
【中文标题】开源 Java Profiler [关闭]【英文标题】:Open Source Java Profilers [closed] 【发布时间】:2010-10-31 05:13:28 【问题描述】:你们有什么推荐使用 Java 的?
唯一的要求是它应该是开源的,或者没有太贵的学术许可证。
【问题讨论】:
当你说开源是指免费?它们有不同的含义。你的问题是关于 _inexpensive profilers 的吗? 免费还是免费?哦,混乱! 【参考方案1】:Eclipse TPTP
这是一篇关于 Java Application Profiling using TPTP 的文章,这是一篇关于 Profiling J2SE 5.0 based applications using Eclipse TPTP 的教程。
【讨论】:
我一直无法设置 TPTP。也许我太笨了,无法使用它。 @quant_dev:我遇到了同样的问题,但不知何故意外地突然设置了它(eclipse重新启动或其他什么?)。但是当我使用它时,它几乎没用,速度非常慢,而且资源匮乏,以至于我杀死了 eclipse。我在网上找到的几个参考资料中提到的一些更有用的视图在适用于 eclipse 3.5 的当前版本中似乎也不再存在。所以目前它基本上只是一个无用的巨大 BLOB。 Eclipse TPTP 看起来像一个成熟的产品,但速度极慢。我不明白为什么...... 不幸的是,TPTP 现已发布最终版本 (v4.7.2)。它已被归档,不再是 Eclipse 同步发布的一部分。【参考方案2】:jdk6 附带的 VisualVM 内部有一个基本的分析器。 VisualVM 是随 jdk 一起提供的,所以如果你安装了 jdk6,你可能也安装了它。
https://visualvm.github.io/
【讨论】:
VisualVM 分析器是 NetBeans 中的一个独立版本。这是一个非常好的开始。 一定要下载最新版本:visualvm.dev.java.net。另外:这是 NetBeans 使用的分析器。 我之前成功使用过VisualVM
,但在尝试分析 Tomcat 应用程序时它崩溃了。这对我有用:github.com/jvm-profiling-tools/honest-profiler
honest-profiler 不能在 JVM 11 上运行,并且作者也没有在项目 atm 上积极工作。 github.com/jvm-profiling-tools/honest-profiler/issues/255【参考方案3】:
Netbeans IDE 包含一个免费的分析器。
另外,如果我没记错的话,JProfiler 的学术许可(相对)便宜。
【讨论】:
OP 确实要求“不太昂贵的学术许可”。 JProfiler 的单一学术许可证为 199 美元 他要求一些开源的或具有廉价学术许可证的东西。在我看来,199 美元对于一个普通许可证需要 499 美元的工具来说相当便宜。【参考方案4】:啊。 Netbeans Profiler,2009 年 developer.com 的“年度产品”获奖者。
【讨论】:
【参考方案5】:Java 有一个基本的内置分析器,称为HProf。我发现将它提供的结果与更全面的特征分析器的结果进行比较很有用。
【讨论】:
我已经使用 HPROF 多年 - 虽然它可能并不漂亮,但它帮助我解决了无数内存和性能问题。 HPROF 经常找到不同的优化点。在 YourKit 不再给我明显的优化点之后,我经常使用它。 自 jdk 9 起已删除。openjdk.java.net/jeps/240【参考方案6】:如果您正在寻找一个简洁、易于使用的开源分析器,您可能想看看 Jip (Java Interactive Profiler)。它是在 BSD 许可下发布的。我发现它对小程序非常有用。至少,它给出的结果比 hprofs 的输出更容易理解。
【讨论】:
【参考方案7】:This 快速、肮脏且非常有效:只需进行几次线程转储,或暂停程序几次,然后查看堆栈跟踪。
【讨论】:
【参考方案8】:你有一个列表here(在下面列出它们,以防链接被破坏)
JMemProf JMP DrMem JTreeProfiler NetBeans 分析器 JAMon API JBoss 分析器 MessAdmin 红外线 Tomcat 探针 Java 交互式探查器 (JIP) Profiler4j 秒表 JMeasurement DJProf TIJmp 阿蒙 Appspy 尤里卡J 日本人 OKTECH 分析器 Perf4j
【讨论】:
您可以将其添加到列表中:github.com/jvm-profiling-tools/honest-profiler【参考方案9】:Java Mission Control,可免费用于开发,并与 Eclipse 集成。它的开销非常低(
它非常易于使用,它还可以提供很多您通常在其他分析工具中找不到的信息,例如延迟分析、在线内存检查、详细的 gc 统计数据
【讨论】:
【参考方案10】:开源工具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()
【讨论】:
【参考方案11】:JVM Monitor 是一个与 Eclipse 集成的 Java 分析器,用于监控 Java 应用程序的 CPU、线程和内存使用情况。
如果需要进一步深入分析,您可以使用其他工具(例如TPTP、Memory Analyzer)作为下一步。
【讨论】:
【参考方案12】:考虑前沿https://github.com/jvm-profiling-tools/async-profiler
这个项目是一个低开销的 Java 采样分析器,不受 Safepoint bias problem 的影响。它具有特定于 HotSpot 的 API 来收集堆栈跟踪和跟踪内存分配。该分析器适用于 OpenJDK、Oracle JDK 和其他基于 HotSpot JVM 的 Java 运行时。
它还内置在 IntelliJ IDEA Ultimate 中:https://www.jetbrains.com/help/idea/cpu-profiler.html。
还有类似的https://github.com/jvm-profiling-tools/honest-profiler。
async-profiler
和honest-profiler
的比较:https://github.com/jvm-profiling-tools/async-profiler/issues/77
【讨论】:
关于 async-profiler 的精美插图文章:hackernoon.com/…以上是关于开源 Java Profiler [关闭]的主要内容,如果未能解决你的问题,请参考以下文章
寻找端到端 Java CPU Profiler 的建议 [关闭]
Uber开源JVM Profiler,用以跟踪分布式Java虚拟机
AndroidStudio编译出现Caused by: java.lang.ArrayIndexOutOfBoundsException: 4其中一种的原因