Переменные среды для профильной оптимизации
Существуют три переменные среды, которые влияют на сценарии тестирования для образа, созданного с помощью /LTCG: PGI для профильной оптимизации:
PogoSafeMode указывает, следует ли использовать быстрый или безопасный режим для профилирования приложений.
VCPROFILE_ALLOC_SCALE добавляет дополнительную память для использования профилировщиком.
VCPROFILE_PATH позволяет указать папку, используемую для PGC-файлов.
Переменные среды PogoSafeMode и VCPROFILE_ALLOC_SCALE являются нерекомендуемыми начиная с Visual Studio 2015. Параметры компоновщика /GENPROFILE или /FASTGENPROFILE и /USEPROFILE указывают то же поведение компоновщика, что и эти переменные среды.
PogoSafeMode
Эта переменная среды является нерекомендуемой. Используйте аргументы EXACT или NOEXACT для /GENPROFILE или /FASTGENPROFILE, чтобы управлять этим поведением.
Снимите или установите переменную среды PogoSafeMode, чтобы указать, следует использовать быстрый или безопасный режим для профилирования приложений в системах x86.
Профильная оптимизация (PGO) имеет два возможных режима на этапе профилирования: быстрый режим и безопасный режим. Если профилирование выполняется в быстром режиме, для увеличения счетчиков данных используется инструкция INC. Инструкция INC выполняется быстрее, но не является потокобезопасной. Если профилирование выполняется в безопасном режиме, для увеличения счетчиков данных используется инструкция LOCK INC. Инструкция LOCK INC имеет те же функциональные возможности, что и инструкция INC, и является потокобезопасной, но выполняется медленнее, чем инструкция INC.
По умолчанию профилирование с использованием профильной оптимизации работает в быстром режиме. PogoSafeMode требуется только в том случае, если вы хотите использовать безопасный режим.
Для запуска профилирования с использованием профильной оптимизации в безопасном режиме необходимо использовать переменную среды PogoSafeMode или параметр компоновщика /PogoSafeMode в зависимости от системы. При выполнении профилирования на компьютере с архитектурой x64 необходимо использовать параметр компоновщика. При выполнении профилирования на компьютере с архитектурой x86 можно использовать переключатель компоновщика или задать для переменной среды PogoSafeMode любое значение до начала процесса оптимизации.
Синтаксис PogoSafeMode
set PogoSafeMode[=value]
Задайте для параметра PogoSafeMode любое значение, чтобы включить безопасный режим. Не указывайте значение, чтобы очистить предыдущее значение и повторно включить быстрый режим.
VCPROFILE_ALLOC_SCALE
Эта переменная среды является нерекомендуемой. Используйте аргументы MEMMIN и MEMMAX для /GENPROFILE или /FASTGENPROFILE, чтобы управлять этим поведением.
Измените переменную среды VCPROFILE_ALLOC_SCALE, чтобы изменить объем памяти, выделенной для хранения данных профиля. В редких случаях будет недостаточно памяти для поддержки сбора данных профиля при выполнении сценариев тестирования. В таких случаях можно увеличить объем памяти, установив VCPROFILE_ALLOC_SCALE. Если во время тестового запуска появляется сообщение об ошибке, указывающее на нехватку памяти, назначьте большее значение VCPROFILE_ALLOC_SCALE, пока тест не завершится без ошибок нехватки памяти.
Синтаксис VCPROFILE_ALLOC_SCALE
set VCPROFILE_ALLOC_SCALE[=scale_value]
Параметр scale_value является коэффициентом масштабирования для объема памяти, необходимого для выполнения тестовых сценариев. Значение по умолчанию — 1. Например, эта командная строка устанавливает коэффициент масштабирования 2:
set VCPROFILE_ALLOC_SCALE=2
VCPROFILE_PATH
Используйте переменную среды VCPROFILE_PATH, чтобы указать каталог для создания PGC-файлов. По умолчанию PGC-файлы создаются в том же каталоге, что и файл, для которого выполняется профилирование. Но если абсолютный путь к двоичному файлу не существует, например при выполнении сценариев профилирования не на том компьютере, где был создан двоичный файл, можно задать для VCPROFILE_PATH путь, который существует на целевом компьютере.
Синтаксис VCPROFILE_PATH
set VCPROFILE_PATH[=path]
В параметре path укажите путь к каталогу, в который нужно добавить PGC-файлы. Например, эта командная строка устанавливает папку C:\profile:
set VCPROFILE_PATH=c:\profile
См. также
Профильная оптимизация
/GENPROFILE и /FASTGENPROFILE
/USEPROFILE