GCSettings.LargeObjectHeapCompactionMode Свойство

Определение

Возвращает или задает значение, которое указывает, будет ли куча больших объектов (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>]
member this.LargeObjectHeapCompactionMode : System.Runtime.GCLargeObjectHeapCompactionMode with get, set
member this.LargeObjectHeapCompactionMode : System.Runtime.GCLargeObjectHeapCompactionMode with get, set
Public Shared Property LargeObjectHeapCompactionMode As GCLargeObjectHeapCompactionMode

Значение свойства

GCLargeObjectHeapCompactionMode

Одно из значений перечисления, указывающее, сжимается ли LOH при полной блокирующей сборке мусора.

Атрибуты

Комментарии

LoH используется для выделения памяти для больших объектов (например, массивов), для которых требуется более 85 000 байт. Из-за влияния на производительность копирования больших блоков памяти сборщик мусора обычно выполняет очистку loH, включающую создание списка расположений памяти, занятых мертвыми объектами, и которые можно повторно использовать для удовлетворения будущих запросов на выделение памяти для больших объектов. Однако в приложениях, которые широко используют loH для хранения временных объектов, фрагментация памяти также может негативно повлиять на производительность. В этом случае можно использовать LargeObjectHeapCompactionMode свойство для сжатия, а не простой очистки loH во время сборки мусора.

Значение LargeObjectHeapCompactionMode свойства по умолчанию — это GCLargeObjectHeapCompactionMode.Defaultзначение, указывающее, что loH не сжимается во время сборки мусора. Если присвоить свойству значение GCLargeObjectHeapCompactionMode.CompactOnce, loH сжимается во время следующей полной блокировки сборки мусора, а значение свойства сбрасывается в GCLargeObjectHeapCompactionMode.Default.

Примечание

Фоновые сборки мусора не блокируются. Это означает, что если задать LargeObjectHeapCompactionMode для свойства GCLargeObjectHeapCompactionMode.CompactOnceзначение , все коллекции фонового поколения 2, которые происходят впоследствии, не сжимают loH. Только первая блокирующая коллекция поколения 2 сжимает loH.

LargeObjectHeapCompactionMode После установки GCLargeObjectHeapCompactionMode.CompactOnceсвойства следующая полная блокировка сборки мусора (и сжатие loH) происходит в неопределенное время в будущем. LoH можно сжимать немедленно, используя следующий код:

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

Применяется к

См. также раздел