GFlags dan PageHeap

Versi GFlags ini mencakup fungsionalitas PageHeap (pageheap.exe), alat yang memungkinkan pemantauan alokasi timbunan di Windows. PageHeap memungkinkan fitur Windows yang mencadangkan memori pada batas setiap alokasi untuk mendeteksi upaya mengakses memori di luar alokasi.

Opsi timbunan halaman di GFlags memungkinkan Anda memilih verifikasi tumpukan standar, yang menulis pola isi di akhir setiap alokasi tumpukan dan memeriksa pola ketika alokasi dikosongkan, atau verifikasi tumpukan halaman penuh, yang menempatkan halaman yang tidak dapat diakses di akhir setiap alokasi sehingga program segera berhenti jika mengakses memori di luar alokasi. Karena verifikasi timbunan penuh menggunakan halaman penuh memori untuk setiap alokasi, penggunaannya yang luas dapat menyebabkan kekurangan memori sistem.

  • Untuk mengaktifkan verifikasi timbunan halaman standar untuk semua proses, gunakan gflags /r +hpa atau gflags /k +hpa.

  • Untuk mengaktifkan verifikasi timbunan halaman standar untuk satu proses, gunakan gflags /p /enableImageFileName.

  • Untuk mengaktifkan verifikasi timbunan halaman penuh untuk satu proses, gunakan gflags /iImageFileName+hpa atau gflags /p /enableImageFileName/full.

Semua pengaturan tumpukan halaman, kecuali untuk /k, disimpan dalam registri dan tetap efektif sampai Anda mengubahnya.

Perhatikan bahwa fungsionalitas PageHeap hanya aktif jika verifikasi PageHeap diaktifkan sebelum gambar diluncurkan. Untuk proses yang berjalan lama, seperti W3WP untuk IIS di lingkungan produksi, ini berarti bahwa verifikasi tidak akan dimulai sampai proses dimulai ulang. Demikian pula, jika PageHeap dinonaktifkan saat proses berjalan, verifikasi akan berlanjut hingga proses dimulai ulang. Mengeluarkan perintah GFlags yang sama berulang kali, saat proses berjalan atau tidak, tidak memiliki efek tambahan. Sebagai implikasi dari ini, mengaktifkan PageHeap menggunakan perintah GFlags bersifat idempotensi.

Konfigurasi PageHeap juga persisten di seluruh penghentian proses dan hidupkan ulang sistem. Hidupkan ulang sistem dapat digunakan untuk menginisialisasi ulang proses setelah pengaturan PageHeap yang diinginkan dikonfigurasi, tetapi tidak dapat digunakan untuk menonaktifkan fungsionalitas setelah diaktifkan. Menonaktifkan PageHeap harus dilakukan secara eksplisit.

Gunakan perawatan dalam menginterpretasikan kotak centang Aktifkan timbunan halaman untuk file gambar dalam kotak dialog GFlags. Ini menunjukkan bahwa verifikasi timbunan halaman diaktifkan untuk file gambar, tetapi tidak menunjukkan apakah itu verifikasi tumpukan halaman penuh atau standar. Jika hasil centang dari memilih kotak centang, verifikasi timbunan halaman penuh diaktifkan untuk file gambar. Namun, jika hasil pemeriksaan dari penggunaan antarmuka baris perintah, pemeriksaan dapat mewakili pengaktifan verifikasi timbunan halaman penuh atau standar untuk file gambar.

Untuk menentukan apakah verifikasi timbunan halaman penuh atau standar diaktifkan untuk program, di baris perintah, ketik gflags /p. Dalam tampilan yang dihasilkan, jejak menunjukkan bahwa verifikasi timbunan halaman standar diaktifkan untuk program dan jejak penuh menunjukkan bahwa verifikasi timbunan halaman penuh diaktifkan untuk program.