哪个Java Profiler更好:JProfiler或YourKit?

时间:2008-10-02 18:02:05

标签: java performance jprofiler yourkit

哪种分析器更适合通用分析和堆分析?我们90%的应用程序都是独立的命令行程序,具有大量的数据库和数字处理功能。另外10%是webapps / servlet容器应用程序(JSP和NO SCRIPLETS很少!)。目标用户将是具有5 - 10年行业经验的高级软件工程师。我们只需要Sun JDK 5和。

的支持

在撰写此问题时(2008-10-02),JProfiler为5.1.4,YourKit为7.5。看起来很快就会发布YourKit 8.0。

21 个答案:

答案 0 :(得分:38)

我已经使用了JProfiler 4和YourKit 7.5,并且YourKit赢了。它比JProfile的侵入性要小得多,因为我很高兴运行安装了YourKit代理的生产服务器,我永远不会用JProfiler。

此外,YourKit附带的分析工具更直观(在我看来),更容易找到问题的根本原因。

答案 1 :(得分:17)

如果您使用的是jdk> = 1.6_07,您可能还想查看捆绑的jvisualvm。

答案 2 :(得分:15)

最近使用过JProfiler和Yourkit,我发现yourkit远远优于内存问题分析,并且非常喜欢jprofiler进行性能分析。 Yourkit的内存分析似乎更容易和直观。对于yourkit的性能分析,我没有成功解决我试图用yourkit解决的任何性能问题。 JProfiler通过方法调用的确切数量和每种方法花费的时间百分比,为性能分析显示更准确,更简洁的信息。我还没有在你的套件中找到这个。看起来你的套件只是提供了不准确的采样信息,除非你测量了数千次调用。

答案 3 :(得分:8)

除JXInsight之外的所有工具都不执行真正的数据库事务分析:

http://www.jinspired.com/products/jxinsight/concurrency.html http://www.jinspired.com/products/jxinsight/olapvsoltp.html

考虑到我们在SPECjvm2008基准测试中执行netbeans profiler 20x和yourkit 100x,JXInsight的Probes技术也是唯一可以在生产中运行的技术。

http://blog.jinspired.com/?p=272

我是JXInsight的架构师,所以当然我完全有偏见但同时我可能比Java行业中的大多数人更有资格做出这样的声明,因为我在过去的8年里一直致力于一些性能分析生产中最苛刻的Java / J2EE应用程序。

我应该指出,JXInsight是专为软件性能工程师而设计的,而不仅仅是偶尔的adhoc性能分析会话。我们有超过4000多个系统属性来配置运行时和600多个技术扩展库,因此除非有一个复杂的问题需要解决和/或在开发中使用相同的工具,测试和生产是最重要的,否则它可能会过度。

亲切的问候,

威廉

答案 4 :(得分:8)

我已经广泛使用了JProbe,OptimizeIt和YourKit,它们都是有用的工具。在3中,我最喜欢的是YourKit。

JProbe中的一个杀手功能是能够从执行快照移动到带注释的源(带有计数和时间)。我发现这非常有用。

答案 5 :(得分:7)

使用Java 7 Update 40,Oracle包括Java mission control(最初是JRockit JDK的一部分) - 一个非常强大的性能调优工具,可以与yourkit / jprofiler竞争。

看一看并感到惊讶。

答案 6 :(得分:5)

我已经使用了两者,现在我的投票绝对是JProfiler(在当前版本6中),因为它更易于使用并且具有许多有用的附加功能。在之前的版本中,YourKit在较大的快照中具有一些优势,但现在已经不复存在了。

答案 7 :(得分:4)

绝对是YourKit ...它只能使用1g堆打开4 gigs堆转储。虽然具有相同堆分配的Jprofiler崩溃了!

答案 8 :(得分:3)

我使用过你的套件,它是一个非常漂亮的分析器,这是我在java中使用过的最好的(多年来我用过各种其他的)。话虽如此,我从未使用过jprofiler,所以我不能直接比较。

答案 9 :(得分:1)

对于命令行程序的快速和脏分析,JIP非常有效。

答案 10 :(得分:1)

Yourkit 它的开销低,稳定,易于安装在JVM上进行分析(只需一个dll)并且功能强大。 为了分析堆转储,它是唯一接近Eclipse Memory Analyzer的分析器。

答案 11 :(得分:1)

YourKit很棒。您可能还想查看NetBeans中内置的分析器 - 它非常酷。

答案 12 :(得分:1)

我使用过YourKit。我没有使用过JProfiler。我之前使用过OptimizeIt。我对YourKit有很好的看法。它非常稳定,良好的GUI和良好的功能列表。我注意到的一个独特功能是CPU分析有无等待时间(如I / O等),包括。

它的价格也非常合理(我认为5个许可证约为1100美元)

答案 13 :(得分:1)

免责声明:替代答案。

他们有各种产品用于生产监控/分析UNLIKE其他大部分开发时间工具:http://www.jinspired.com/products/jxinsight/
关于JDBInsight的服务器上的这篇文章:http://www.theserverside.com/news/thread.tss?thread_id=13488

免责声明:我与任何级别的公司无关。

答案 14 :(得分:1)

多年来一直使用JProfiler并对此非常满意。 IntelliJ似乎在YourKit和JProfiler之间来回切换推荐,所以我猜他们的功能集是相似的。我相信他们都有试用版。

答案 15 :(得分:0)

顺便说一下,你可能想要考虑一下Netbeans的分析器 - 它非常好。但我没有使用你提到的两个中的任何一个。

答案 16 :(得分:0)

我正在使用JProfiler并且发现整体还可以。然而,它的“动态仪器”功能对于小方法非常偏向。

答案 17 :(得分:0)

我正在使用TPTP分析器。它具有最好的功能,可以在Eclipse中轻松集成,但最糟糕的是它使Eclipse运行速度变慢。

答案 18 :(得分:0)

+1 for yourkit ---在windows中的dev框中使用7.0 暂时不使用JProfiler - 无法评论,因为它们可能在此期间有所改进。

答案 19 :(得分:0)

我只使用过JProfiler(以及一些JProbe)。据我所知,YourKit的一个限制是它们似乎不支持JDK 1.4.2。这对许多人来说不是问题,但可能是。

答案 20 :(得分:0)

绝对是你的凯特。这是最直观,最稳定的!