哪个分析器更适合通用分析和堆分析?我们 90% 的应用程序是具有大量数据库和数字处理的独立命令行程序。其他 10% 是 webapps/servlet 容器应用程序(只有很少的 JSP 并且没有 SCRIPLETS!)。目标用户是具有 5-10 年行业经验的高级软件工程师。我们只需要支持 Sun JDK 5 和。
在撰写此问题 (2008-10-02) 时,JProfiler 为 5.1.4,YourKit 为 7.5。看起来YourKit 8.0 即将发布。
哪个分析器更适合通用分析和堆分析?我们 90% 的应用程序是具有大量数据库和数字处理的独立命令行程序。其他 10% 是 webapps/servlet 容器应用程序(只有很少的 JSP 并且没有 SCRIPLETS!)。目标用户是具有 5-10 年行业经验的高级软件工程师。我们只需要支持 Sun JDK 5 和。
在撰写此问题 (2008-10-02) 时,JProfiler 为 5.1.4,YourKit 为 7.5。看起来YourKit 8.0 即将发布。
我使用过 JProfiler 4 和 YourKit 7.5,YourKit 胜出。它比 JProfile 侵入性要小得多,因为我很乐意在安装了 YourKit 代理的情况下运行生产服务器,而 JProfiler 永远不会这样做。
此外,YourKit 附带的分析工具更直观(在我看来),更容易找到问题的根本原因。
如果您使用的是 jdk >=1.6_07,您可能还想查看捆绑的 jvisualvm。
最近同时使用了 JProfiler 和 Yourkit,我发现 yourkit 在内存问题分析方面要优越得多,并且更喜欢 jprofiler 来进行性能分析。Yourkit 的内存分析似乎更容易和直观。对于 yourkit 的性能分析,我未能成功解决我尝试使用 yourkit 解决的任何性能问题。JProfiler 显示更准确、更简洁的性能分析信息,其中包含方法调用的确切数量和每个方法花费的时间百分比。我还没有在你的工具包中找到这个。似乎 yourkit 只提供不准确的采样信息,除非您测量数千次调用。
除了 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 多个技术扩展库,因此除非有一个复杂的问题需要解决和/或在开发、测试和生产中使用相同的工具,否则这可能是多余的。
亲切的问候,
威廉
我已经广泛使用了 JProbe、OptimizeIt 和 YourKit,它们都是功能强大的工具。在这 3 个中,我最喜欢的是 YourKit。
JProbe 中的一个杀手级功能是能够从 perf 快照移动到带注释的源(带有计数和计时)。我发现这非常有用。
在 Java 7 Update 40 中,Oracle 包含了Java 任务控制(最初是 JRockit JDK 的一部分)——一个非常强大的性能调整工具,能够与 yourkit/jprofiler 竞争。
看看并感到惊讶。
我都用过,我现在的投票肯定是 JProfiler(在当前版本 6 中),因为它更易于使用并且具有许多有用的附加功能。在以前的版本中,YourKit 在更大的快照方面有一些优势,但现在已经不复存在了。
绝对是YourKit ...它能够打开4 gigs heap dump,只使用1g的堆。而具有相同堆分配的 Jprofiler 崩溃了!
我用过 yourkit,它是一个非常好的分析器,是我在 java 中用过的最好的(这些年来我用过很多其他的)。话虽如此,我从未使用过jprofiler,所以我无法直接比较。
对于命令行程序的快速而肮脏的分析,JIP工作得非常好。
免责声明:替代答案。
他们有各种用于生产监控/分析的产品,不像其他主要的开发时间工具:http
://www.jinspired.com/products/jxinsight/ JDBInsight 服务器端的这篇文章:http ://www.theserverside.com/news/thread .tss?thread_id=13488
免责声明:我与这家公司没有任何级别的联系。
YourKit 很棒。您可能还想查看 NetBeans 中内置的分析器——它非常酷。
我用过YourKit。我没有使用过 JProfiler。我以前用过OptimizeIt。我对 YourKit 有很好的看法。它非常稳定、良好的 GUI 和良好的功能列表。我注意到的一项独特功能是 CPU 分析有无等待时间(如 I/O wais),包括。
它的价格也非常合理(我认为 5 个许可证约 1100 美元)
多年来一直使用 JProfiler,对此非常满意。IntelliJ 似乎在 YourKit 和 JProfiler 之间来回切换他们的推荐,所以我猜他们的功能集是相似的。我相信他们都有试用版。
Yourkit 开销低、稳定、易于安装在 JVM 上进行分析(只需一个 dll)且功能强大。对于分析堆转储,它是唯一接近Eclipse Memory Analyzer的分析器。
+1 for yourkit --- 在 Windows 中的开发盒上使用 7.0
有一段时间没有使用 JProfiler --- 无法评论,因为它们可能在此期间有所改进。
I am using JProfiler and find it overall OK. It's "dynamical instrumentation" feature is terribly biased for small methods, though.
我只使用过 JProfiler(和一些 JProbe)。据我所知,YourKit 的一个限制是它们似乎不支持 JDK 1.4.2。这对很多人来说不是问题,但可能是。
顺便说一句,您可能需要考虑 Netbeans 分析器——它非常好。但我没有使用过你提到的两个。
我正在使用 TPTP 分析器。它的最佳特性是可以很容易地集成到 Eclipse 中,但不好的是它会使 Eclipse 运行速度变慢。
绝对是 YourKit。最直观最稳定!