62

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

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

4

21 回答 21

38

我使用过 JProfiler 4 和 YourKit 7.5,YourKit 胜出。它比 JProfile 侵入性要小得多,因为我很乐意在安装了 YourKit 代理的情况下运行生产服务器,而 JProfiler 永远不会这样做。

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

于 2008-10-02T20:32:12.010 回答
17

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

于 2008-10-02T18:20:10.223 回答
17

最近同时使用了 JProfiler 和 Yourkit,我发现 yourkit 在内存问题分析方面要优越得多,并且更喜欢 jprofiler 来进行性能分析。Yourkit 的内存分析似乎更容易和直观。对于 yourkit 的性能分析,我未能成功解决我尝试使用 yourkit 解决的任何性能问题。JProfiler 显示更准确、更简洁的性能分析信息,其中包含方法调用的确切数量和每个方法花费的时间百分比。我还没有在你的工具包中找到这个。似乎 yourkit 只提供不准确的采样信息,除非您测量数千次调用。

于 2010-05-20T14:56:05.783 回答
9

除了 JXInsight 之外,没有任何工具执行真正的数据库事务分析:

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

JXInsight 的 Probes 技术也是唯一可以在生产中运行的技术,因为我们在 SPECjvm2008 基准测试中的性能比 netbeans profiler 高 20 倍,yourkit 高 100 倍。

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

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

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

亲切的问候,

威廉

于 2008-10-20T11:19:28.263 回答
9

我已经广泛使用了 JProbe、OptimizeIt 和 YourKit,它们都是功能强大的工具。在这 3 个中,我最喜欢的是 YourKit。

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

于 2008-10-03T04:32:20.297 回答
8

在 Java 7 Update 40 中,Oracle 包含了Java 任务控制(最初是 JRockit JDK 的一部分)——一个非常强大的性能调整工具,能够与 yourkit/jprofiler 竞争。

看看并感到惊讶。

于 2013-11-03T22:45:16.967 回答
6

我都用过,我现在的投票肯定是 JProfiler(在当前版本 6 中),因为它更易于使用并且具有许多有用的附加功能。在以前的版本中,YourKit 在更大的快照方面有一些优势,但现在已经不复存在了。

于 2009-11-15T11:20:51.887 回答
5

绝对是YourKit ...它能够打开4 gigs heap dump,只使用1g的堆。而具有相同堆分配的 Jprofiler 崩溃了!

于 2009-09-12T02:48:42.863 回答
3

我用过 yourkit,它是一个非常好的分析器,是我在 java 中用过的最好的(这些年来我用过很多其他的)。话虽如此,我从未使用过jprofiler,所以我无法直接比较。

于 2008-10-02T20:18:57.253 回答
1

对于命令行程序的快速而肮脏的分析,JIP工作得非常好。

于 2008-10-02T18:41:12.713 回答
1

免责声明:替代答案。

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

免责声明:我与这家公司没有任何级别的联系。

于 2008-10-02T22:02:13.777 回答
1

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

于 2008-10-03T19:02:44.963 回答
1

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

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

于 2008-10-03T03:49:18.357 回答
1

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

于 2008-10-02T20:26:25.737 回答
1

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

于 2008-10-10T15:15:51.240 回答
0

+1 for yourkit --- 在 Windows 中的开发盒上使用 7.0
有一段时间没有使用 JProfiler --- 无法评论,因为它们可能在此期间有所改进。

于 2008-10-02T21:49:29.830 回答
0

I am using JProfiler and find it overall OK. It's "dynamical instrumentation" feature is terribly biased for small methods, though.

于 2009-06-14T10:30:48.003 回答
0

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

于 2008-10-02T18:58:39.833 回答
0

顺便说一句,您可能需要考虑 Netbeans 分析器——它非常好。但我没有使用过你提到的两个。

于 2008-10-02T22:15:02.233 回答
0

我正在使用 TPTP 分析器。它的最佳特性是可以很容易地集成到 Eclipse 中,但不好的是它会使 Eclipse 运行速度变慢。

于 2009-09-01T16:07:51.333 回答
0

绝对是 YourKit。最直观最稳定!

于 2014-01-13T07:55:32.740 回答