.NET Framework 버전 4부터는 프로파일러를 응용 프로그램 시작 시에 연결(시작 로드)하거나 응용 프로그램 실행 중에 연결(연결 로드)할 수 있습니다. 두 옵션에서는 COM 구성 요소로 등록되지 않은 프로파일러를 시작할 수 있는 기능을 제공합니다.
이러한 두 가지 방법은 프로파일러 시작을 위한 여러 프로토콜을 사용합니다. 두 방법에 대해서는 다음 단원에서 설명합니다.
시작 로드 프로파일러
시작 로드 프로파일러는 프로파일링 대상 응용 프로그램이 시작할 때 로드됩니다. .NET Framework 4 이전에는 프로파일러를 로드하기 위한 유일한 방법이 시작 로드였습니다. 프로파일러는 다음 환경 변수 값을 통해 등록되어 있어야 하며 찾을 수 있었습니다.
COR_ENABLE_PROFILING=1
COR_PROFILER={프로파일러의 CLSID}
CLR(공용 언어 런타임)은 COR_PROFILER를 통해 CLSID를 사용하여 레지스트리의 HKEY_CLASSES_ROOT에서 프로파일러를 찾았습니다.
.NET Framework 4부터는 이전과 마찬가지로 프로파일러를 등록할 수 있지만 등록 조회 이전에 또 다른 환경 변수가 확인됩니다.
- COR_PROFILER_PATH=프로파일러 DLL의 전체 경로
COR_PROFILER_PATH가 있는 경우 프로파일러를 찾는 데 해당 값이 사용되고, 등록 조회는 생략됩니다.
참고:
COR_PROFILER_PATH는 선택적입니다. COR_PROFILER_PATH를 지정하지 않으면 레지스트리에서 경로를 찾는 데 프로파일러의 CLSID가 사용됩니다.
COR_PROFILER_PATH를 지정하고 프로파일러를 등록한 경우에는 COR_PROFILER_PATH를 우선 참조합니다. COR_PROFILER_PATH가 잘못된 경로를 가리키면 프로파일러가 등록되어 있어도 프로파일러를 로드하지 못합니다.
COR_PROFILER는 항상 지정해야 합니다. COR_PROFILER_PATH를 지정한 경우 레지스트리 조회는 생략되지만, CreateInstance를 호출하려면 COR_PROFILER를 통해 CLSID를 가져와야 합니다.
연결 로드 프로파일러
.NET Framework 4부터는 실행 중인 응용 프로그램에 프로파일러를 연결할 수 있습니다. 이 기능에 대한 자세한 내용은 프로파일러 연결 및 분리를 참조하십시오. 연결 로드 프로파일러에서는 ICLRProfiling::AttachProfiler 메서드의 wszProfilerPath 매개 변수를 사용하여 프로파일러 DLL 파일의 위치를 검색합니다. wszProfilerPath가 null인 경우 런타임에서는 pClsidProfiler 매개 변수에 지정된 CLSID를 레지스트리에서 조회하여 프로파일러를 찾으려고 합니다.