哪种分析器更适合通用分析和堆分析?我们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即将发布.
我已经使用了JProfiler 4和YourKit 7.5,并且YourKit赢了.它比JProfile更具侵略性,因为我很高兴运行安装了YourKit代理的生产服务器,我永远不会对JProfiler这样做.
此外,YourKit附带的分析工具更直观(在我看来),使得更容易找到问题的根本原因.
如果您使用的是jdk> = 1.6_07,您可能还想查看捆绑的jvisualvm.
最近使用过JProfiler和Yourkit后,我发现yourkit远远优于内存问题分析,并且非常喜欢jprofiler进行性能分析.Yourkit的内存分析似乎更容易和直观.对于yourkit的性能分析,我没有成功解决我试图用yourkit解决的任何性能问题.JProfiler通过方法调用的确切数量和每种方法花费的时间百分比,为性能分析显示更准确,更简洁的信息.我还没有在你的套件中找到这个.看来你的套件只提供不准确的采样信息,除非你测量数千次调用.
我已经广泛使用了JProbe,OptimizeIt和YourKit,它们都是有用的工具.在3中,我最喜欢的是YourKit.
JProbe中的一个杀手功能是能够从perf快照移动到带注释的源(带有计数和时间).我发现这非常有用.
除JXInsight之外的所有工具都不执行真正的数据库事务分析:
http://www.jinspired.com/products/jxinsight/concurrency.html http://www.jinspired.com/products/jxinsight/olapvsoltp.html
考虑到我们在SPECjvm2008基准测试中执行netbeans profiler 20x和yourkit 100x,JXInsight的探测技术也是唯一可以在生产中运行的技术.
http://blog.jinspired.com/?p=272
我是JXInsight的架构师,所以当然我完全有偏见但同时我可能比Java行业中的大多数人更有资格做出这样的声明,因为我过去8年来一直致力于性能分析.在生产中要求Java/J2EE应用程序.
我应该指出,JXInsight是专为软件性能工程师而设计的,而不仅仅是偶尔的adhoc性能分析会话.我们有超过4000多个系统属性来配置运行时和600多个技术扩展库,因此除非有一个复杂的问题需要解决和/或在开发中使用相同的工具,测试和生产是最重要的,否则它可能会过度.
亲切的问候,
威廉
在Java 7 Update 40中,Oracle包含Java任务控制(最初是JRockit JDK的一部分) - 一个非常强大的性能调优工具,能够与yourkit/jprofiler竞争.
看一看,感到惊讶.
我已经使用了两者,现在我的投票肯定是JProfiler(在当前版本6中),因为它更容易使用并且具有许多有用的附加功能.在之前的版本中,YourKit在较大的快照中具有一些优势,但现在已经不复存在了.