Bagikan melalui


Elemen <GCHeapAffinitizeMask>

Menentukan afinitas antara tumpukan GC dan prosesor individu.

<konfigurasi>
  <runtime>
    <GCHeapAffinitizeMask>

Sintaks

<GCHeapAffinitizeMask
   enabled="nnnn"/>

Atribut dan elemen

Bagian berikut menjelaskan atribut, elemen turunan, dan elemen induk.

Atribut

Atribut Deskripsi
enabled Atribut yang diperlukan.

Menentukan afinitas antara tumpukan GC dan prosesor individual.

atribut yang diaktifkan

Nilai Deskripsi
nnnn Nilai desimal yang membentuk bitmask yang mendefinisikan afinitas antara tumpukan GC server dan prosesor individu.

Elemen anak

Tidak ada.

Elemen induk

Elemen Deskripsi
configuration Elemen akar di setiap file konfigurasi yang digunakan oleh runtime bahasa umum dan aplikasi .NET Framework.
runtime Berisi informasi tentang pengikatan assembly dan pengumpulan sampah.

Keterangan

Secara default, utas GC server diasosiasikan dengan CPU masing-masing sehingga ada satu heap GC, satu utas GC server, dan satu utas GC server latar belakang untuk masing-masing prosesor. Semenjak .NET Framework 4.6.2, Anda dapat menggunakan elemen GCHeapAffinitizeMask untuk mengontrol afinitas di antara tumpukan GC server dan prosesor saat jumlah tumpukan dibatasi oleh elemen GCHeapCount.

GCHeapAffinitizeMask biasanya digunakan bersama dengan dua tanda lainnya:

  • GCNoAffinitize, yang mengontrol apakah utas/tumpukan GC server dikaitkan dengan CPU. Atribut enabled dari elemen GCNoAffinitize harus berupa false (nilai defaultnya) agar pengaturan GCHeapAffinitizeMask dapat digunakan.

  • GCHeapCount, yang membatasi jumlah tumpukan yang digunakan oleh proses untuk GC server. Secara default, ada satu tumpukan untuk setiap prosesor.

nnnn adalah masker bit yang dinyatakan sebagai nilai desimal. Bit 0 dari byte 0 mewakili prosesor 0, bit 1 dari byte 0 mewakili prosesor 1, dan seterusnya. Contohnya:

<GCHeapAffinitizeMask enabled="1023"/>

Nilai 1023 adalah 0x3FF atau 0011 1111 1111b. Prosesnya menggunakan 10 prosesor, mulai dari prosesor 0 hingga prosesor 9.

Contoh

Contoh berikut menunjukkan bahwa aplikasi menggunakan server GC dengan 10 tumpukan/utas. Karena Anda tidak ingin tumpukan tersebut tumpang tindih dengan tumpukan dari aplikasi lain yang berjalan di sistem, gunakan GCHeapAffinitizeMask untuk menentukan bahwa proses harus menggunakan CPU 0 hingga 9.

<configuration>
   <runtime>
      <gcServer enabled="true"/>
      <GCHeapCount enabled="10"/>
      <GCHeapAffinitizeMask enabled="1023"/>
   </runtime>
</configuration>

Lihat juga