Поделиться через


Запуск и присоединение профилировщиков без их регистрации

Начиная с версии .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)

Справочник по неуправляемым API