用于生产的最佳和最安全的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和性能工具平台项目。 无论是否适合生产使用,都取决于用户。 对我来说,这很好,它确实符合你的需求。

http://www.eclipse.org/tptp/

另一种select是http://www.newrelic.com/ 。 我们已经在生产中使用了一段时间了,它看起来相当可靠和高性能。 设置简单(一个.jar和一个-agent命令行选项)。

还有另一个新选项叫做javosize

当我在谷歌search“最好的java分析器”时,我看到了第一个非付费链接(这是一个博客),同样的工具上的评论意见:

https://blog.oio.de/2014/03/07/java-profilers-a-short-comparison-between-jprofiler-yourkit-and-javas-visualvm /

希望能帮助到你!

编辑:如评论说,LinkedIn链接是一个私人论坛。 对不起。 这里是主要网站的链接:

http://www.javosize.com/gettingStarted.html

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。