다음을 통해 공유


프로파일링 API의 알림 스레드

업데이트: 2007년 11월

대부분의 경우 이벤트를 생성하는 스레드는 알림도 실행합니다. FunctionEnterFunctionLeave와 같은 알림은 명시적인 ThreadID를 제공할 필요가 없습니다. 또한 프로파일러에서는 전역 저장소의 분석 블록을 인덱싱하는 대신, 영향을 받는 스레드의 ThreadID를 기반으로 분석 블록을 저장 및 업데이트할 스레드 로컬 저장소를 사용할 수 있습니다.

이러한 콜백은 serialize되지 않습니다. 스레드로부터 안전한 데이터 구조를 만들고, 여러 스레드의 병렬 액세스를 방지해야 하는 경우 프로파일러 코드를 잠가 코드를 보호해야 합니다. 그러므로 경우에 따라 순서가 평소와 다른 콜백을 받을 수 있습니다. 예를 들어 관리되는 응용 프로그램에서 같은 코드를 실행하는 두 개의 스레드를 생성하는 경우 한 스레드에서는 특정 함수에 대해 ICorProfilerCallback::JITCompilationStarted 이벤트를 받고, 다른 스레드에서는 FunctionEnter 콜백을 받은 다음 ICorProfilerCallback::JITCompilationFinished 콜백을 받을 수 있습니다. 이 경우 사용자는 아직 완전히 JIT(Just-In-Time) 컴파일되지 않은 함수에 대해 FunctionEnter 콜백을 받습니다.

참고 항목

기타 리소스

프로파일링 API의 공통 기능

프로파일링 개요