JFR 如何计算事件开始时间?
Posted
技术标签:
【中文标题】JFR 如何计算事件开始时间?【英文标题】:How does JFR calculate Event Start Time? 【发布时间】:2020-09-04 13:03:46 【问题描述】:我正在使用 jcmd
工具使用 JFR 分析应用程序。有时,当我生成 JFR 文件时,开始录制的时间比我开始录制的时间早得多。例如:
JFR recording
我已经搜索过关于这个问题的信息,但我只是找到了这个链接:
https://blogs.oracle.com/poonam/clarifying-some-confusion-around-java-flight-recordings
正如这篇博文所说,我在 JMC 事件日志上搜索了事件,但在开始录制之前我没有找到任何事件。
所以我的问题是,JFR 如何计算“事件开始时间”?
我不知道它是否相关,但我还包括使用jcmd
发送的命令:
jcmd 1 JFR.start name=profile settings=profile maxage=10m
几分钟后,我将转储并停止录制:
jcmd 1 JFR.dump name=profile filename=/tmp/recording.jfr
jcmd 1 JFR.stop name=profile
非常感谢您的帮助!
【问题讨论】:
【参考方案1】:事件开始时间是事件开始的时间。
在某些情况下,事件可能会在录制之前开始。例如,
-
开始录制 A
活动开始(开始时间已过)
录制 A 结束
开始录制 B
活动结束(已结束时间)
录制 B 结束
录制 B 将包含事件,因为它在事件结束时写入文件,但开始时间将在录制 B 开始之前发生。发生这种情况的其他原因是不同 CPU 上的时钟之间存在偏差。
【讨论】:
非常感谢基尔!你的回答很有帮助以上是关于JFR 如何计算事件开始时间?的主要内容,如果未能解决你的问题,请参考以下文章