.NET 运行时分层编译事件

本文中介绍的事件用于收集有关分层编译的信息。 有关如何将这些事件用于诊断的详细信息,请参阅对 .NET 应用程序进行日志记录和跟踪

TieredCompilationSettings 事件

下表显示了关键字和级别。

引发事件的关键字 Level
CompilationKeyword (0x1000000000) 信息性 (4)

下表显示了事件信息。

事件 事件 ID 在发生以下情况时引发
TieredCompilationSettings 280 提供有关分层编译设置的信息。

下表显示了事件数据。

字段名 数据类型 描述
ClrInstanceID win:UInt16 CoreCLR 实例的唯一 ID。
Flags win:UInt32 指示各种设置的标志。 可以使用按位 OR 提供多个标志,并且 0x0 值指示未提供任何标志。

0x1 - 已启用快速 JIT。 如果方法没有预编译代码,则对于第一层,它将快速编译 JIT,但优化更少。

0x2 - 为包含循环的方法启用快速 JIT。

0x4 - 已启用分层 PGO。 在优化方法之前,可以对其进行分析。

0x8 - 已启用 ReadyToRun。 具有预编译 ReadyToRun 代码的方法将在第一层使用该代码。

TieredCompilationPause 事件

下表显示了关键字和级别。

引发事件的关键字 Level
CompilationKeyword (0x1000000000) 信息性 (4)

下表显示了事件信息。

事件 事件 ID 在发生以下情况时引发
TieredCompilationPause 281 分层编译已暂停。 由于启动式活动(例如首次调用新方法),分层编译可能会暂停,以减少应用程序启动期间的开销,例如调用计数和后台 JIT 编译。 在启动式活动在短时间内停止后,它将恢复。

下表显示了事件数据。

字段名 数据类型 描述
ClrInstanceID win:UInt16 CoreCLR 实例的唯一 ID。

TieredCompilationResume 事件

下表显示了关键字和级别。

引发事件的关键字 Level
CompilationKeyword (0x1000000000) 信息性 (4)

下表显示了事件信息。

事件 事件 ID 在发生以下情况时引发
TieredCompilationResume 282 已恢复分层编译。

下表显示了事件数据。

字段名 数据类型 描述
ClrInstanceID win:UInt16 CoreCLR 实例的唯一 ID。
NewMethodCount win:UInt32 在分层编译暂停时首次调用的新方法数。

TieredCompilationBackgroundJitStart 事件

下表显示了关键字和级别。

引发事件的关键字 Level
CompilationKeyword (0x1000000000) 信息性 (4)

下表显示了事件信息。

事件 事件 ID 在发生以下情况时引发
TieredCompilationBackgroundJitStart 283 后台 JIT 编译已开始。

下表显示了事件数据。

字段名 数据类型 描述
ClrInstanceID win:UInt16 CoreCLR 实例的唯一 ID。
PendingMethodCount win:UInt32 挂起后台 JIT 编译的方法数。

TieredCompilationBackgroundJitStop 事件

下表显示了关键字和级别。

引发事件的关键字 Level
CompilationKeyword (0x1000000000) 信息性 (4)

下表显示了事件信息。

事件 事件 ID 在发生以下情况时引发
TieredCompilationBackgroundJitStop 284 后台 JIT 编译已停止。

下表显示了事件数据。

字段名 数据类型 描述
ClrInstanceID win:UInt16 CoreCLR 实例的唯一 ID。
PendingMethodCount win:UInt32 仍在等待后台 JIT 编译的方法数。
JittedMethodCount win:UInt32 自上次启动后台 JIT 编译以来,在后台进行 JIT 编译的方法数。