Заметка
Доступ к этой странице требует авторизации. Вы можете попробовать войти в систему или изменить каталог.
Доступ к этой странице требует авторизации. Вы можете попробовать сменить директорию.
Этот параметр задает объем памяти, который выделяется компилятором для конструирования предкомпилированных заголовков.
Синтаксис
/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
Откройте диалоговое окно Страницы свойств проекта. Подробнее см. в статье Настройка компилятора C++ и свойства сборки в Visual Studio.
Перейдите на страницу свойств Свойства конфигурации>C/C++>Командная строка.
Введите параметр компилятора /Zm в поле "Дополнительные параметры".
Установка параметра компилятора программным способом /Zm
- См. раздел AdditionalOptions.
См. также
Параметры компилятора MSVC
Синтаксис командной строки компилятора MSVC