Java 飞行记录器是基于采样的还是基于仪器的探查器?

Java 飞行记录器是基于采样的还是基于仪器的探查器?,java,jvm,jfr,Java,Jvm,Jfr,尽管我看了飞行记录器文档,但还是找不到这些信息?我基本上希望记录我程序的所有执行情况,甚至不会因为采样而丢失一个小函数。来自: JFR持续保存有关运行系统的大量数据。此配置文件信息包括线程示例(显示程序花费时间的位置)、锁配置文件和垃圾收集详细信息 (重点加上。) 一般来说,插装有些昂贵,因此如果您看到一个承诺非常低/没有开销的工具,您可以非常肯定它是采样的。是否有用于jdk的基于开源插装的探查器?我不确定,抱歉。询问工具建议的问题在Stack Overflow中是离题的,但您可以尝试一下。也就

尽管我看了飞行记录器文档,但还是找不到这些信息?我基本上希望记录我程序的所有执行情况,甚至不会因为采样而丢失一个小函数。

来自:

JFR持续保存有关运行系统的大量数据。此配置文件信息包括线程示例(显示程序花费时间的位置)、锁配置文件和垃圾收集详细信息

(重点加上。)


一般来说,插装有些昂贵,因此如果您看到一个承诺非常低/没有开销的工具,您可以非常肯定它是采样的。

是否有用于jdk的基于开源插装的探查器?我不确定,抱歉。询问工具建议的问题在Stack Overflow中是离题的,但您可以尝试一下。也就是说,我想谷歌搜索也能回答这个问题。如果你想免费使用非商业软件,而不关心开源,可以试试VisualVM。@yshavit为什么说“[If]不关心开源”?VisualVM GPL软件不是吗?@Holger我在手机上写下了这条评论,当时还不确定——应该在我的评论中指明这一点。看起来你是对的,这也是GPL2。如果你对每个方法进行采样,你的记录将非常不准确,因为它将把所有的时间都花在调用最多的方法上,即使这些方法很琐碎。如果不小心的话,仪器可能会慢10-100倍,误差也差不多。