2

jcmd我正在使用工具分析带有 JFR 的应用程序。有时,当我生成 JFR 文件时,开始录制的时间比我开始录制的时间早得多。例如:

JFR 录音

我已经搜索了有关此问题的信息,但我刚刚找到了此链接:

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

非常感谢你的帮助!

4

1 回答 1

0

事件开始时间是事件开始的时间。

在某些情况下,事件可能在录制之前开始。例如,

  1. 录制 A 开始
  2. 事件开始(开始时间)
  3. 录音A结束
  4. 录制 B 开始
  5. 活动结束(以结束时间为准)
  6. 录制 B 结束

录制 B 将包含事件,因为它在事件结束时写入文件,但开始时间将在录制 B 开始之前发生。发生这种情况的其他原因是不同 CPU 上的时钟之间存在偏差。

于 2020-09-22T22:38:09.983 回答