用于生产的最佳和最安全的Java Profiler?
我正在寻找一个Java Profiler,用于需求非常高的生产环境,无论是商业还是免费的,都满足以下所有要求:
- 与代码的轻量级集成(不需要用特殊选项重新编译,不需要代码钩子等等)。 在应用程序代码旁边放置一些Profiler特定的.jar是可以的。
- 应该能够连接/断开连接到JVM而无需重新启动应用程序。
- 分析不活跃时,对性能没有影响
- 分析活动时,对性能的影响可以忽略不计。 很轻微的降解是可以接受的
- 必须完成分析器所需的所有“预期”工作 – 在每种方法中花费的时间来查找热点,对象分配/内存分析等。
从本质上讲,我需要一些能够在生产过程中处于hibernate状态的东西,而不需要任何人知道或关心它是否存在,但是却可以自由地连接到麻烦(和性能下降),以确定难以发现的问题,如热点和同步的问题。
你尝试过YourKit吗? 它几乎具有您正在寻找的所有function。
Java VisualVM是一个工具,它提供了一个可视化界面,用于在Java虚拟机(JVM)上运行时查看有关基于Java技术的应用程序(Java应用程序)的详细信息。 Java VisualVM组织由Java开发工具包(JDK)工具检索的JVM数据,并以使您能够快速查看多个Java应用程序数据的方式显示信息。 您可以查看在远程主机上运行的本地应用程序和应用程序的数据。 您还可以捕获有关JVM软件的数据,并将数据保存到本地系统,以后再查看数据或与其他人共享数据。 这来自Oracle JDK它自己…
$ jvisualvm
我对jProfiler感到满意 。
我更喜欢Java飞行logging器 。 它几乎没有性能开销,并有一个很好的graphics用户界面。 添加JVM参数
-XX:+UnlockCommercialFeatures -XX:+FlightRecorder
-XX:StartFlightRecording=name=test,filename=test.jfr,dumponexit=true
并与江铃公司打开logging。
我使用Eclipse TPTP – Eclipsetesting和性能工具平台项目。 无论是否适合生产使用,都取决于用户。 对我来说,这很好,它确实符合你的需求。
另一种select是http://www.newrelic.com/ 。 我们已经在生产中使用了一段时间了,它看起来相当可靠和高性能。 设置简单(一个.jar和一个-agent命令行选项)。
还有另一个新选项叫做javosize
当我在谷歌search“最好的java分析器”时,我看到了第一个非付费链接(这是一个博客),同样的工具上的评论意见:
希望能帮助到你!
编辑:如评论说,LinkedIn链接是一个私人论坛。 对不起。 这里是主要网站的链接:
FusionReactor Java应用程序性能监视器还包含一个非常低的开销Java Profiler作为其特性组合的一部分。 http://www.fusion-reactor.com/production-java-profiler/ FusionReactor可以在几分钟内完成安装,并有14天的免费试用期。
结合使用Flight Recorder查看Java Mission Control 。 从Oracle JDK 7 Update 40(7u40)的发布开始,Java Mission Control与HotSpot JVM捆绑在一起,因此它是高度集成的,并且声称对运行时性能影响很小。 它具有Callgrind的调用树function。