GCSettings.LargeObjectHeapCompactionMode Egenskap

Definition

Hämtar eller anger ett värde som anger om en fullständig blockerande skräpinsamling komprimerar den stora objekthögen (LOH).

public:
 static property System::Runtime::GCLargeObjectHeapCompactionMode LargeObjectHeapCompactionMode { System::Runtime::GCLargeObjectHeapCompactionMode get(); void set(System::Runtime::GCLargeObjectHeapCompactionMode value); };
public static System.Runtime.GCLargeObjectHeapCompactionMode LargeObjectHeapCompactionMode { get; [System.Security.SecurityCritical] set; }
public static System.Runtime.GCLargeObjectHeapCompactionMode LargeObjectHeapCompactionMode { get; set; }
[<set: System.Security.SecurityCritical>]
static member LargeObjectHeapCompactionMode : System.Runtime.GCLargeObjectHeapCompactionMode with get, set
static member LargeObjectHeapCompactionMode : System.Runtime.GCLargeObjectHeapCompactionMode with get, set
Public Shared Property LargeObjectHeapCompactionMode As GCLargeObjectHeapCompactionMode

Egenskapsvärde

Ett av uppräkningsvärdena som anger om en fullständig blockerande skräpinsamling komprimerar LOH.

Attribut

Kommentarer

LOH används för att allokera minne för stora objekt (till exempel matriser) som kräver mer än 85 000 byte. På grund av prestandapåverkan vid kopiering av stora minnesblock sveper skräpinsamlaren vanligtvis LOH, vilket innebär att skapa en lista över de minnesplatser som upptas av döda objekt och som kan återanvändas för att uppfylla framtida begäranden om allokering av minne för stora objekt. Men i appar som använder LOH i stor utsträckning för att lagra tillfälliga objekt kan minnesfragmentering också påverka prestanda negativt. I det här fallet är det möjligt att använda egenskapen LargeObjectHeapCompactionMode för att komprimera i stället för att bara sopa LOH under en skräpinsamling.

Standardvärdet för LargeObjectHeapCompactionMode egenskapen är GCLargeObjectHeapCompactionMode.Default, vilket anger att LOH inte komprimeras under skräpsamlingar. Om du tilldelar egenskapen värdet GCLargeObjectHeapCompactionMode.CompactOnce, komprimeras LOH under nästa fullständiga blockerande skräpinsamling och egenskapsvärdet återställs till GCLargeObjectHeapCompactionMode.Default.

Note

Skräpsamlingar i bakgrunden blockerar inte. Det innebär att om du anger LargeObjectHeapCompactionMode egenskapen till GCLargeObjectHeapCompactionMode.CompactOncekomprimerar inte alla bakgrundssamlingar av generation 2 som inträffar senare LOH-värdet. Endast den första blockeringssamlingen av generation 2 komprimerar LOH.

När egenskapen LargeObjectHeapCompactionMode har angetts till GCLargeObjectHeapCompactionMode.CompactOncesker nästa fullständiga blockerande skräpinsamling (och komprimering av LOH) vid en obestämd framtida tidpunkt. Du kan komprimera LOH direkt med hjälp av kod som följande:

GCSettings.LargeObjectHeapCompactionMode = GCLargeObjectHeapCompactionMode.CompactOnce;
GC.Collect();
GCSettings.LargeObjectHeapCompactionMode = GCLargeObjectHeapCompactionMode.CompactOnce
GC.Collect()

Gäller för

Se även