Bagikan melalui


GFlags dan PageHeap

Versi GFlags ini mencakup fungsionalitas PageHeap (pageheap.exe), alat yang memungkinkan pemantauan alokasi timbunan di Windows. PageHeap memungkinkan fungsi Windows yang memesan 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 timbunan dan memeriksa pola ketika alokasi dibebaskan, 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 tersebar 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 heap halaman, kecuali /k, disimpan dalam registri dan tetap berlaku hingga 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 mulai ulang sistem. Mulai 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 hati-hati dalam menginterpretasikan kotak cek Aktifkan page heap untuk berkas 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 dari memilih kotak centang adalah centang, maka verifikasi penuh tumpukan halaman diaktifkan untuk file gambar. Namun, jika pemeriksaan berasal dari penggunaan antarmuka baris perintah, maka pemeriksaan tersebut dapat mewakili pengaktifan verifikasi heap halaman penuh atau standar untuk file gambar.

Untuk menentukan apakah verifikasi tumpukan 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.