共用方式為


/Zm (指定先行編譯標頭記憶體配置限制)

判斷編譯器配置來建構先行編譯標頭檔的記憶體量。

語法

/Zmfactor

引數

factor
縮放比例百分比,決定編譯程式用來建構先行編譯標頭的記憶體數量。

factor 變數是編譯程式定義工作緩衝區的預設大小百分比。 的預設值 factor 為 100 (百分比),但您可以指定較大或較小的數量。

備註

在 Visual Studio 2015 之前的版本中,C++編譯程式使用了數個離散堆積,而且每個堆積都有有限的限制。 目前,編譯程式會視需要動態成長堆積,以達到堆積大小總計的限制,並允許先行編譯的標頭組成多個位址範圍。 現在, /Zm 編譯程式選項很少必要。

如果編譯程式用盡堆積空間,並在您使用/Zm編譯程式選項時發出 C1060 錯誤訊息,您可能已保留太多記憶體。 請考慮移除 /Zm 選項。

如果編譯程序發出 C1076 錯誤訊息,隨附 的 C3859 訊息會 factor 指定當您使用 /Zm 編譯程式選項重新編譯時要使用的自變數。 只有在先行編譯標頭使用 #pragma hdrstop時,這個訊息才重要。 在其他情況下,這是 Windows 虛擬記憶體壓力問題所造成的假錯誤,因此應該忽略使用 /Zm 選項的建議。 相反地,請考慮使用 /maxcpucount 選項來MSBUILD.EXE搭配 /MP 選項來CL.EXE時減少平行進程的數目。 如需詳細資訊,請參閱 先行編譯標頭 (PCH) 問題和建議

下表顯示 自 factor 變數如何影響記憶體配置限制。 在數據表中,我們假設預設先行編譯標頭緩衝區的大小為 75 MB。

factor 的值 記憶體配置限制
10 7.5 MB
100 75 MB
200 150 MB
1000 750 MB
2000 1500 MB

設定記憶體配置限制的其他方式

在 Visual Studio 開發環境中設定 /Zm 編譯程式選項

  1. 開啟專案的 [屬性頁] 對話方塊。 如需詳細資料,請參閱在 Visual Studio 中設定 C ++ 編譯器和組建屬性

  2. 選取 [組態屬性]>[C/C++]>[命令列] 屬性頁。

  3. 在 [其他選項] 方塊中輸入 /Zm 編譯程序選項。

以程式設計方式設定 /Zm 編譯程序選項

另請參閱

MSVC 編譯器選項
MSVC 編譯器命令列語法