Megosztás a következőn keresztül:


<GCHeapCount> elem

A kiszolgáló szemétgyűjtéséhez használandó heapok/szálak számát adja meg.

<Konfigurációs>
  <Runtime>
    <GCHeapCount>

Syntax

<GCHeapCount
   enabled="nn"/>

Attribútumok és elemek

Az alábbi szakaszok az attribútumokat, a gyermekelemeket és a szülőelemeket ismertetik.

Attribútumok

Attribútum Leírás
enabled Kötelező attribútum.

A kiszolgáló szemétgyűjtéséhez használandó heapok számát adja meg. A heapok tényleges száma a megadott heapok számának és a folyamat által használható processzorok számának minimális száma.

enabled attribútum

Érték Leírás
nn A kiszolgálói GC-hez használandó heapok száma.

Gyermekelemek

Nincsenek.

Szülőelemek

Elem Leírás
configuration A közös nyelvi futtatókörnyezet és .NET-keretrendszer alkalmazások által használt összes konfigurációs fájl gyökéreleme.
runtime Információkat tartalmaz a szerelvénykötésről és a szemétgyűjtésről.

Megjegyzések

Alapértelmezés szerint a kiszolgálói GC-szálak a megfelelő processzorral vannak erősen affinitva, így minden egyes processzorhoz egy GC-, egy kiszolgálói GC-szál és egy háttérkiszolgálói GC-szál tartozik. A .NET-keretrendszer 4.6.2-es verziójától kezdve a GCHeapCount elem használatával korlátozhatja az alkalmazás által a kiszolgálói GC-hez használt heapok számát. A kiszolgálói GC-hez használt heapok számának korlátozása különösen hasznos a kiszolgálóalkalmazás több példányát futtató rendszerek esetében.

A GCHeapCount általában két másik jelzővel együtt használatos:

  • GCNoAffinitize, amely azt szabályozza, hogy a kiszolgálói GC-szálak/-heapok affinitása-e a PROCESSZORokkal.

  • GCHeapAffinitizeMask, amely szabályozza a GC-szálak/-heapok és a CPU-k affinitását.

Ha a GCHeapCount be van állítva, és a GCNoAffinitize le van tiltva (az alapértelmezett beállítás), akkor affinitás van az nn GC-szálak/-heaps és az első nn processzorok között. A GCHeapAffinitizeMask elem használatával megadhatja, hogy a folyamat kiszolgálói GC-heapjai mely processzorokat használják. Ellenkező esetben, ha több kiszolgálófolyamat fut egy rendszeren, a processzorhasználata átfedésben lesz.

Ha a GCHeapCount be van állítva, és a GCNoAffinitize engedélyezve van, a szemétgyűjtő korlátozza a kiszolgálói GC-hez használt processzorok számát, de nem affinitja a GC-heapokat és a processzorokat.

Példa

Az alábbi példa azt jelzi, hogy egy alkalmazás 10 heaps/szálas kiszolgálói GC-t használ. Mivel nem szeretné, hogy ezek a halommemória átfedésben legyen a rendszeren futó más alkalmazások halmaival, a GCHeapAffinitizeMask használatával megadhatja, hogy a folyamat 0–9 cpu-kat használjon.

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

Az alábbi példa nem affinitja a kiszolgálói csoportházirend-szálakat, és a GC-heapok/szálak számát 10-re korlátozza.

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

Lásd még