ICorProfilerFunctionControl::SetCodegenFlags 方法
从 COR_PRF_CODEGEN_FLAGS 枚举设置一个或多个标志,从而控制实时 (JIT) 重新编译函数的代码生成。
语法
HRESULT SetCodegenFlags(
[in] DWORD flags);
参数
flags
[in] COR_PRF_CODEGEN_FLAGS 枚举中的一个或多个标志。
注解
探查器将通过 ICorProfilerCallback4::GetReJITParameters 回调获得此接口的实例。 SetCodegenFlags
允许探查器控制重新编译函数的代码生成。 与所有其他 JIT 重新编译参数一样,代码生成标志适用于函数的所有实例。
编译函数时,JIT 编译器会考虑这些编译标志以及其他源指定的其他标志。 其他源包括调试程序、探查器在启动时使用 ICorProfilerInfo::SetEventMask 方法设置的全局标志(值为 COR_PRF_DISABLE_INLINING
和 COR_PRF_DISABLE_OPTIMIZATIONS
),以及探查器的 ICorProfilerCallback::JITInlining 回调。 JIT 编译器优先考虑请求最少优化的源。 例如,如果探查器在启动时指定 COR_PRF_DISABLE_INLINING
,但在 ICorProfilerFunctionControl::SetCodegenFlags 回调中未指定 COR_PRF_CODEGEN_DISABLE_INLINING
,则内联仍处于禁用状态。 同样,如果探查器未在 SetCodegenFlags
中指定 COR_PRF_CODEGEN_DISABLE_INLINING
,但随后使用 ICorProfilerCallback::JITInlining 回调禁用内联,则内联处于禁用状态。
要求
平台:请参阅系统要求。
头文件: CorProf.idl、CorProf.h
库:CorGuids.lib
.NET Framework 版本:自 4.5 起可用