/Zm (Укажите ограничение выделения памяти предкомпилированного заголовка)

Этот параметр задает объем памяти, который выделяется компилятором для конструирования предкомпилированных заголовков.

Синтаксис

/Zmfactor

Аргументы

factor
Процент масштабирования, определяющий объем памяти, используемый компилятором для создания предварительно скомпилированных заголовков.

Аргумент factor — это процент размера по умолчанию определенного компилятором рабочего буфера. Значение factor по умолчанию равно 100 (процент), но можно указать большие или меньшие суммы.

Замечания

В версиях до Visual Studio 2015 компилятор C++ использовал несколько дискретных куч, и каждый из них имел конечное ограничение. В настоящее время компилятор динамически увеличивает кучу до общего ограничения размера кучи и позволяет предварительно скомпилированному заголовку содержать несколько диапазонов адресов. Теперь параметр компилятора /Zm редко требуется.

Если компилятор не хватает кучи и выдает сообщение об ошибке C1060 при использовании /Zm параметра компилятора, возможно, было зарезервировано слишком много памяти. Рассмотрите /Zm возможность удаления параметра.

Если компилятор выдает сообщение об ошибке C1076 , соответствующее сообщение C3859 указывает factor аргумент, используемый при повторной компиляции с помощью параметра компилятора /Zm . Это сообщение важно только при использовании #pragma hdrstopпредварительно скомпилированного заголовка. В других случаях это спрогнозная ошибка, вызванная проблемами с давлением виртуальной памяти Windows, и рекомендация по использованию /Zm этого параметра должна игнорироваться. Вместо этого рекомендуется уменьшить количество параллельных процессов при использовании /maxcpucount параметра MSBUILD.EXE вместе с параметром /MP CL.EXE. Дополнительные сведения см. в разделе о проблемах и рекомендациях с предварительной компиляцией заголовков (PCH).

В следующей таблице показано, как factor аргумент влияет на ограничение выделения памяти. В таблице предполагается, что размер предварительно скомпилированного буфера заголовка по умолчанию составляет 75 МБ.

Значение параметра factor Предел выделения памяти
10 7.5 МБ
100 75 МБ
200 150 МБ
1000 750 МБ
2000 1500 МБ

Другие способы установки ограничения выделения памяти

Установка параметра компилятора /Zm в среде разработки Visual Studio

  1. Откройте диалоговое окно Страницы свойств проекта. Подробнее см. в статье Настройка компилятора C++ и свойства сборки в Visual Studio.

  2. Перейдите на страницу свойств Свойства конфигурации>C/C++>Командная строка.

  3. Введите параметр компилятора /Zm в поле "Дополнительные параметры".

Установка параметра компилятора программным способом /Zm

См. также

Параметры компилятора MSVC
Синтаксис командной строки компилятора MSVC