sme*_*eeb 3 java performance apm jvisualvm java-mission-control
用于Java的(相对)新的内置性能监视器/分析器是Mission Control。在甲骨文的文档做广告,他们可以在生产中使用,而不会产生性能开销(不到2%):
工具链[Mission Control + Flight Recorder]使开发人员和管理员可以从本地运行或部署在生产环境中的Java应用程序收集和分析数据。
我已经使用jvisualvm(VisualVM)多年了,但是由于在生产环境中可能会带来性能开销,所以人们从来没有使用过(VisualVM)。
所以我问:任务控制(及其飞行记录器)与VisualVM之间的区别是什么,它使MC / FR不会妨碍性能?还是它们不包括VisualVM提供的某些功能?
方法配置文件的主要性能差异是MC / JFR使用采样,并且每个采样间隔仅采样几个线程。它对AsyncGetCallTrace使用类似的方法(例如,参见http://psy-lob-saw.blogspot.com/2016/06/the-pros-and-cons-of-agct.html)
由于我使用MC / JFR,因此我不熟悉VisualVM如何进行采样分析,但是我相信它没有使用相同的方法。
MC / JFR的数据收集引擎已深度集成到HotSpot JVM中,VisualVM使用外部API / MXBeans。这也有助于JFR降低性能开销。通常,JFR旨在查找热点,而不是收集100%正确但会降低应用程序运行速度并影响实际行为的数据。这不仅适用于方法抽样和分配抽样,还适用于有关延迟事件(等待/睡眠/阻止)的其他信息,其中仅记录超过特定阈值的事件。我对VisualVM的比较不太熟悉。
除此之外,这两个工具具有不同的功能集,没有一个是另一个的超集。