共用方式為


/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 編譯器命令列語法