.NET 运行时分层编译事件

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

TieredCompilationSettings 事件

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

引发事件的关键字 水平
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 事件

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

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

下表显示了事件信息。

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

下表显示了事件数据。

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

TieredCompilationResume 事件

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

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

下表显示了事件信息。

事件 事件 ID
TieredCompilationResume 282 已恢复分层编译。

下表显示了事件数据。

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

TieredCompilationBackgroundJitStart 事件

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

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

下表显示了事件信息。

事件 事件 ID
TieredCompilationBackgroundJitStart 283 后台 JIT 编译已开始。

下表显示了事件数据。

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

TieredCompilationBackgroundJitStop 事件

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

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

下表显示了事件信息。

事件 事件 ID
TieredCompilationBackgroundJitStop 284 后台 JIT 编译已停止。

下表显示了事件数据。

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