Запуск и присоединение профилировщиков без их регистрации
Начиная с версии .NET Framework 4, разработчик может присоединять профилировщики при запуске приложения (загрузка при запуске) и в ходе работы приложений (загрузка путем присоединения). В обоих случаях возможен запуск профилировщиком, не зарегистрированных в качестве COM-компонентов.
Эти методы используют различные протоколы для запуска профилировщиков и описываются в следующих разделах.
Профилировщики с загрузкой при запуске
Профилировщики с загрузкой при запуске загружается при запуске профилируемого приложения. В версиях до .NET Framework 4 такое поведение было единственным способом загрузки профилировщика. Профилировщик подлежал регистрации и обнаруживался через значения следующих переменных среды:
COR_ENABLE_PROFILING=1
COR_PROFILER={CLSID профилировщика}
Среда CLR использовала идентификатор CLSID из переменной COR_PROFILER для обнаружения профилировщика в разделе реестра 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, то поиск в реестре не осуществляется, но идентификатор CLSID из переменной COR_PROFILER остается необходимым требованием для вызова CreateInstance.
Профилировщики с загрузкой путем присоединения
Начиная с версии .NET Framework 4, профилировщик можно присоединить к запущенному приложению. Дополнительные сведения об этих возможностях см. в разделе Присоединение и отсоединение профилировщика. Профилировщик с загрузкой путем присоединения использует параметр wszProfilerPath метода ICLRProfiling::AttachProfiler для обнаружения расположения DLL-файла. Если wszProfilerPath имеет значение null, то среда выполнения пытается обнаружить профилировщик путем поиска в реестре идентификатора CLSID, указанного в параметре pClsidProfiler.
См. также
Основные понятия
Общие сведения о профилировании
Другие ресурсы
Профилирование (справочник по неуправляемым интерфейсам API)