Share via


ICorProfilerFunctionControl::SetCodegenFlags 메서드

JIT(Just-In-Time) 다시 컴파일된 함수에 대한 코드 생성을 제어하기 위해 COR_PRF_CODEGEN_FLAGS 열거형에서 플래그를 하나 이상 설정합니다.

구문

HRESULT SetCodegenFlags(  
    [in] DWORD flags);  

매개 변수

flags
[in] COR_PRF_CODEGEN_FLAGS 열거형의 하나 이상 플래그입니다.

설명

프로파일러는 ICorProfilerCallback4::GetReJITParameters 콜백을 통해 이 인터페이스의 인스턴스를 가져옵니다. SetCodegenFlags를 사용하면 프로파일러가 다시 컴파일된 함수에 대한 코드 생성을 제어할 수 있습니다. 다른 모든 JIT 다시 컴파일 매개 변수와 마찬가지로 코드 생성 플래그는 함수의 모든 인스턴스에 적용됩니다.

JIT 컴파일러는 함수를 컴파일할 때 다른 소스에서 지정한 다른 플래그와 함께 이러한 컴파일 플래그를 고려합니다. 다른 원본으로는 디버거, ICorProfilerInfo::SetEventMask 메서드(값 COR_PRF_DISABLE_INLININGCOR_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부터 사용 가능

참고 항목