JIT 跟踪 ETW 事件
这些事件可收集有关实时 (JIT) 内联和 JIT 尾调用成功或失败的信息。
JIT 跟踪事件包含以下两个类别:
JIT 内联事件
JIT 尾调用事件
JIT 内联事件
MethodJitInliningFailed 事件
下表显示关键字和级别。 (有关更多信息,请参见 CLR ETW 关键字和级别。)
用于引发事件的关键字 |
级别 |
---|---|
JITTracingKeyword (0x10) |
详细级别 (5) |
下表显示事件信息。
Event |
事件 ID |
在以下情况下引发 |
---|---|---|
MethodJitInliningFailed |
186 |
JIT 内联失败。 |
下表显示事件数据。
字段名 |
数据类型 |
说明 |
---|---|---|
MethodBeingCompiledNameSpace |
win:UnicodeString |
正在编译的方法的命名空间。 |
MethodBeingCompiledName |
win:UnicodeString |
正在编译的方法的名称。 |
MethodBeingCompiledNameSignature |
win:UnicodeString |
正在编译的方法的签名。 |
InlinerNamespace |
win:UnicodeString |
JIT 编译器正在尝试为其生成代码的方法的命名空间。 |
InlinerName |
win:UnicodeString |
编译器正在尝试为其生成代码的方法的名称。 如果编译器正在尝试将代码内联到 MethodBeingCompiledName,而不是生成对 InlinerName 的调用,则此名称可能会与 MethodBeingCompiledName 不相同。 |
InlinerNameSignature |
win:UnicodeString |
内联方的签名。 |
InlineeNamespace |
win:UnicodeString |
被内联方的命名空间。 |
InlineeName |
win:UnicodeString |
编译器正在尝试内联的方法(不生成对此方法的调用)。 |
InlineeNameSignature |
win:UnicodeString |
被内联方的签名。 |
FailAlways |
win:Boolean |
提示 JIT 编译器针对被内联方的内联操作将始终失败。 |
FailReason |
win:UnicodeString |
INLINE_NEVER 表示前一个内联尝试确定了内联操作因某些其他原因将永远不会成功;否则为任意形式的文本。 |
ClrInstanceID |
win:UnicodeString |
CLR 或 CoreCLR 的实例的唯一 ID。 |
MethodJitInliningSucceeded 事件
下表显示关键字和级别。
用于引发事件的关键字 |
级别 |
---|---|
JITTracingKeyword (0x10) |
详细级别 (5) |
下表显示事件信息。
Event |
事件 ID |
在以下情况下引发 |
---|---|---|
MethodJitInliningSucceeded |
185 |
方法内联成功。 |
下表显示事件数据。
字段名 |
数据类型 |
说明 |
---|---|---|
MethodBeingCompiledNameSpace |
win:UnicodeString |
正在编译的方法的命名空间。 |
MethodBeingCompiledName |
win:UnicodeString |
正在编译的方法的名称。 |
MethodBeingCompiledNameSignature |
win:UnicodeString |
正在编译的方法的签名。 |
InlinerNamespace |
win:UnicodeString |
JIT 编译器正在尝试为其生成代码的方法的命名空间。 |
InlinerName |
win:UnicodeString |
编译器正在尝试为其生成代码的方法的名称。 如果编译器正在尝试将代码内联到 MethodBeingCompiledName,而不是生成对 InlinerName 的调用,则此名称可能会与 MethodBeingCompiledName 不相同。 |
InlinerNameSignature |
win:UnicodeString |
内联方的签名。 |
InlineeNamespace |
win:UnicodeString |
被内联方的命名空间。 |
InlineeName |
win:UnicodeString |
编译器正在尝试内联的方法(不生成对此方法的调用)。 |
InlineeNameSignature |
win:UnicodeString |
被内联方的签名。 |
ClrInstanceID |
win:UInt16 |
CLR 或 CoreCLR 的实例的唯一 ID。 |
返回页首
JIT 尾调用事件
MethodJITTailCallFailed 事件
下表显示关键字和级别。
用于引发事件的关键字 |
级别 |
---|---|
JITTracingKeyword (0x10) |
详细级别 (5) |
下表显示事件信息。
Event |
事件 ID |
在以下情况下引发 |
---|---|---|
MethodJitTailCallFailed |
189 |
方法尾调用失败。 |
下表显示事件数据。
字段名 |
数据类型 |
说明 |
---|---|---|
MethodBeingCompiledNameSpace |
win:UnicodeString |
正在编译的方法的命名空间。 |
MethodBeingCompiledName |
win:UnicodeString |
正在编译的方法的名称。 |
MethodBeingCompiledNameSignature |
win:UnicodeString |
正在编译的方法的签名。 |
CallerNamespace |
win:UnicodeString |
JIT 编译器正在尝试为其生成代码的方法的命名空间。 |
CallerName |
win:UnicodeString |
编译器正在尝试为其生成代码的方法的名称。 |
CallerNameSignature |
win:UnicodeString |
调用方的签名。 |
CalleeNamespace |
win:UnicodeString |
被调用方的命名空间。 |
CalleeName |
win:UnicodeString |
编译器正在尝试尾调用的方法(不生成对此方法的调用)。 |
CalleeNameSignature |
win:UnicodeString |
被调用方的签名。 |
TailPrefix |
win:Boolean |
尾调用的前缀。 |
FailReason |
win:UnicodeString |
尾调用失败的原因。 |
ClrInstanceID |
win:UInt16 |
CLR 或 CoreCLR 的实例的唯一 ID。 |
MethodJITTailCallSucceeded 事件
下表显示关键字和级别。
用于引发事件的关键字 |
级别 |
---|---|
JITTracingKeyword (0x10) |
详细级别 (5) |
下表显示事件信息。
Event |
事件 ID |
在以下情况下引发 |
---|---|---|
MethodJitTailCallSucceeded |
188 |
尾调用成功的方法。 |
下表显示事件数据。
字段名 |
数据类型 |
说明 |
---|---|---|
MethodBeingCompiledNameSpace |
win:UnicodeString |
正在编译的方法的命名空间。 |
MethodBeingCompiledName |
win:UnicodeString |
正在编译的方法的名称。 |
MethodBeingCompiledNameSignature |
win:UnicodeString |
正在编译的方法的签名。 |
CallerNamespace |
win:UnicodeString |
JIT 编译器正在尝试为其生成代码的方法的命名空间。 |
CallerName |
win:UnicodeString |
编译器正在尝试为其生成代码的方法的名称。 |
CallerNameSignature |
win:UnicodeString |
调用方的签名。 |
CalleeNamespace |
win:UnicodeString |
被调用方的命名空间。 |
CalleeName |
win:UnicodeString |
编译器正在尝试尾调用的方法(不生成对此方法的调用)。 |
CalleeNameSignature |
win:UnicodeString |
被调用方的签名。 |
TailPrefix |
win:Boolean |
尾调用的前缀。 |
TailCallType |
win:UnicodeString |
尾调用的类型。 |
ClrInstanceID |
win:UInt16 |
CLR 或 CoreCLR 的实例的唯一 ID。 |
返回页首