/Zm (Angeben des Grenzwerts für die Vorkompilierung der Headerspeicherzuweisung)

Bestimmt den Arbeitsspeicher, den der Compiler für die Erstellung von vorkompilierten Headern belegt.

Syntax

/Zmfactor

Argumente

factor
Ein Skalierungsfaktorprozentsatz, der die Arbeitsspeichermenge bestimmt, die der Compiler zum Erstellen vorkompilierter Header verwendet.

Das factor Argument ist ein Prozentsatz der Standardgröße eines compilerdefinierten Arbeitspuffers. Der Standardwert von factor 100 (Prozent), Sie können jedoch größere oder kleinere Beträge angeben.

Hinweise

In Versionen vor Visual Studio 2015 verwendete der C++-Compiler mehrere diskrete Heaps und hatte jeweils einen begrenzten Grenzwert. Derzeit wächst der Compiler dynamisch die Heaps nach Bedarf bis zu einem Gesamthap-Größenlimit und ermöglicht es dem vorkompilierten Header, mehrere Adressbereiche zu umfassen. Jetzt ist die /Zm Compileroption selten erforderlich.

Wenn der Compiler nicht genügend Heapspeicher aufweist und die C1060-Fehlermeldung ausgibt, wenn Sie die /Zm Compileroption verwenden, haben Sie möglicherweise zu viel Arbeitsspeicher reserviert. Erwägen Sie, die /Zm Option zu entfernen.

Wenn der Compiler die C1076-Fehlermeldung ausgibt, gibt eine zugehörige C3859-Meldung das Argument an, das factor verwendet werden soll, wenn Sie die /Zm Compileroption erneut kompilieren. Diese Nachricht ist nur dann wichtig, wenn eine vorkompilierte Kopfzeile verwendet #pragma hdrstopwird. In anderen Fällen ist es ein fehlerhafter Fehler, der durch Probleme mit dem virtuellen Windows-Speicherdruck verursacht wird, und die Empfehlung, die /Zm Option zu verwenden, sollte ignoriert werden. Stattdessen sollten Sie die Anzahl paralleler Prozesse reduzieren, wenn Sie die /maxcpucount Option auf MSBUILD.EXE zusammen mit der /MP Option auf CL.EXE verwenden. Weitere Informationen finden Sie unter Precompiled Header (PCH)-Probleme und Empfehlungen.

Die folgende Tabelle zeigt, wie sich das factor Argument auf die Speicherzuweisungsgrenze auswirkt. In der Tabelle wird davon ausgegangen, dass die Größe des standardkompilierten Headerpuffers 75 MB beträgt.

Wert von factor Maximale Speicherbelegung
10 7,5 MB
100 75 MB
200 150 MB
1.000 750 MB
2000 1500 MB

Weitere Möglichkeiten zum Festlegen des Speicherzuweisungsgrenzwerts

So legen Sie die /Zm Compileroption in der Visual Studio-Entwicklungsumgebung fest

  1. Öffnen Sie das Dialogfeld Eigenschaftenseiten des Projekts. Weitere Informationen erhalten Sie unter Set C++ compiler and build properties in Visual Studio (Festlegen der Compiler- und Buildeigenschaften (C++) in Visual Studio).

  2. Klicken Sie auf der Eigenschaftenseite auf Konfigurationseigenschaften>C/C++>Befehlszeile.

  3. Geben Sie die /Zm-Compileroption in das Feld "Zusätzliche Optionen " ein.

So legen Sie die /Zm Compileroption programmgesteuert fest

Siehe auch

MSVC-Compileroptionen
MSVC-Compiler-Befehlszeilensyntax