Dela via


<Elementet GCHeapCount>

Anger antalet heaps/trådar som ska användas för serverskräpinsamling.

<Konfiguration>
  <Runtime>
    <GCHeapCount>

Syntax

<GCHeapCount
   enabled="nn"/>

Attribut och element

I följande avsnitt beskrivs attribut, underordnade element och överordnade element.

Attribut

Attribut Beskrivning
enabled Obligatoriskt attribut.

Anger antalet heaps som ska användas för serverns skräpinsamling. Det faktiska antalet heaps är det minsta antalet heaps som du anger och antalet processorer som din process tillåts använda.

aktiverat attribut

Värde Beskrivning
nn Antalet heaps som ska användas för server GC.

Underordnade element

Inga.

Överordnade element

Element Beskrivning
configuration Rotelementet i varje konfigurationsfil som används av den vanliga språkkörningen och .NET Framework program.
runtime Innehåller information om sammansättningsbindning och skräpinsamling.

Kommentarer

Som standard är server GC-trådar hårdtillhörighet med deras respektive CPU så att det finns en GC-heap, en server GC-tråd och en bakgrundsserverns GC-tråd för varje processor. Från och med .NET Framework 4.6.2 kan du använda elementet GCHeapCount för att begränsa antalet heaps som används av ditt program för server GC. Att begränsa antalet heaps som används för server GC är särskilt användbart för system som kör flera instanser av ett serverprogram.

GCHeapCount används vanligtvis tillsammans med två andra flaggor:

  • GCNoAffinitize, som styr om server GC-trådar/heaps är tillhörighet med processorer.

  • GCHeapAffinitizeMask, som styr tillhörigheten mellan GC-trådar/-heaps och processorer.

Om GCHeapCount har angetts och GCNoAffinitize är inaktiverat (standardinställningen) finns det en tillhörighet mellan nn GC-trådarna/heaps och de första nn-processorerna . Du kan använda elementet GCHeapAffinitizeMask för att ange vilka processorer som används av processens server-GC-heaps. Annars överlappar processoranvändningen om flera serverprocesser körs på ett system.

Om GCHeapCount har angetts och GCNoAffinitize är aktiverat begränsar skräpinsamlaren antalet processorer som används för server-GC, men GC-heaps och processorer är inte mappade.

Exempel

Följande exempel anger att ett program använder server GC med 10 heaps/threads. Eftersom du inte vill att dessa heaps ska överlappa med högar från andra program som körs i systemet använder du GCHeapAffinitizeMask för att ange att processen ska använda processorer 0 till och med 9.

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

I följande exempel mappas inte server GC-trådar och antalet GC-heaps/trådar begränsas till 10.

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

Se även