Bagikan melalui


/Zm (Tentukan batas alokasi memori header yang telah dikompretasi)

Menentukan jumlah memori yang dialokasikan pengkompilasi untuk membuat header yang telah dikompilasi sebelumnya.

Sintaks

/Zmfactor

Argumen

factor
Persentase faktor penskalaan yang menentukan jumlah memori yang digunakan pengkompilasi untuk membuat header yang telah dikompilasi sebelumnya.

Argumen factor adalah persentase dari ukuran default buffer kerja yang ditentukan kompilator. Nilai factor default adalah 100 (persen), tetapi Anda dapat menentukan jumlah yang lebih besar atau lebih kecil.

Keterangan

Dalam versi sebelum Visual Studio 2015, kompilator C++ menggunakan beberapa timbunan diskrit, dan masing-masing memiliki batas terbatas. Saat ini, kompilator secara dinamis menumbuhkan tumpukan seperlunya hingga batas ukuran timbunan total, dan memungkinkan header yang telah dikompilasi sebelumnya untuk terdiri dari beberapa rentang alamat. Sekarang, /Zm opsi kompilator jarang diperlukan.

Jika kompilator kehabisan ruang timbunan dan memancarkan pesan kesalahan C1060 saat Anda menggunakan /Zm opsi kompilator, Anda mungkin telah memesan terlalu banyak memori. Pertimbangkan untuk menghapus /Zm opsi.

Jika pengkompilasi memancarkan pesan kesalahan C1076, pesan C3859 yang menyertainya menentukan factor argumen yang akan digunakan saat Anda mengkompilasi ulang dengan menggunakan /Zm opsi pengkompilasi. Pesan ini hanya signifikan ketika header yang telah dikommpilasikan menggunakan #pragma hdrstop. Dalam kasus lain, ini adalah kesalahan besar yang disebabkan oleh masalah tekanan memori virtual Windows, dan rekomendasi untuk menggunakan /Zm opsi harus diabaikan. Sebagai gantinya, pertimbangkan untuk mengurangi jumlah proses paralel saat menggunakan /maxcpucount opsi ke MSBUILD.EXE bersama dengan /MP opsi ke CL.EXE. Untuk informasi selengkapnya, lihat Masalah dan rekomendasi Header (PCH) yang Telah Dikompretasi.

Tabel berikut ini memperlihatkan bagaimana factor argumen memengaruhi batas alokasi memori. Dalam tabel, kami mengasumsikan ukuran buffer header default yang telah dikommpilasikan adalah 75 MB.

nilai factor Batas alokasi memori
10 7,5 MB
100 75 MB
200 150 MB
1000 750 MB
2000 1500 MB

Cara lain untuk mengatur batas alokasi memori

Untuk mengatur /Zm opsi pengkompilasi di lingkungan pengembangan Visual Studio

  1. Buka kotak dialog Halaman Properti proyek. Untuk detailnya, lihat Mengatur pengkompilasi C++ dan membuat properti di Visual Studio.

  2. Pilih halaman properti Properti>Konfigurasi C/C++>Baris Perintah.

  3. Masukkan opsi pengkompilasi /Zm di kotak Opsi Tambahan.

Untuk mengatur /Zm opsi pengkompilasi secara terprogram

Baca juga

Opsi pengkompilasi MSVC
Sintaks baris perintah pengkompilasi MSVC