프로파일링 설정
코드 프로파일러는 DLL로 구현된 소프트웨어 도구입니다. 이 도구는 이미지를 실행하는 동안 런타임 시스템에서 호출됩니다. 프로파일러는 프로그래머와 관련된 기타 이벤트가 발생하거나 함수가 시작되거나 종료될 때마다 알림을 받습니다. 이들 이벤트에 대한 통계를 수집함으로써 프로파일러는 대부분의 CPU 시간을 차지하는 루틴과, 가비지 수집이 수행되는 시간과, 예외 발생 여부 등에 대한 폭넓은 정보를 얻을 수 있습니다.
프로세스를 초기화하는 동안 런타임 시스템에서는 프로파일러와 프로세스를 연결합니다. 런타임 시스템에서는 두 환경 변수 COR_ENABLE_PROFILING과 COR_PROFILER를 검사하여 수행할 동작을 결정합니다.
COR_ENABLE_PROFILING이 존재하지 않거나 0으로 설정된 경우, 런타임 시스템에서는 프로파일러와 프로세스를 연결하지 않을 것입니다. 그 이외의 경우, 런타임 시스템에서는 프로세스와 프로파일러를 연결할 것입니다. 이 프로파일러의 지정 클래스 식별자(CLSID)는 COR_PROFILER의 값이 됩니다.
예를 들어, 명령줄에 따라 런타임 시스템에서는 CLSID가 다음과 같은 프로파일러 COM 클래스의 인스턴스를 만들고, 이 인스턴스를 프로세스에 연결합니다.
set Cor_Profiler={32E2F4DA-1BEA-47ea-88F9-C5DAF691C94A}
프로파일러에서는 ICorProfilerCallback 인터페이스를 구현해야 합니다. 런타임 시스템에서는 이 인터페이스를 호출하여 관련 이벤트를 프로파일러에 알려 줍니다.