Переменные среды для профильной оптимизации

Существуют три переменные среды, которые влияют на сценарии тестирования для образа, созданного с помощью /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