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>]
static member LargeObjectHeapCompactionMode : System.Runtime.GCLargeObjectHeapCompactionMode with get, set
static member LargeObjectHeapCompactionMode : System.Runtime.GCLargeObjectHeapCompactionMode with get, set
Public Shared Property LargeObjectHeapCompactionMode As GCLargeObjectHeapCompactionMode
Значение свойства
Одно из значений перечисления, указывающее, сжимает ли loH полную блокировку сборки мусора.
- Атрибуты
Комментарии
LoH используется для выделения памяти для больших объектов (таких как массивы), для которых требуется более 85 000 байт. Из-за влияния на производительность копирования больших блоков памяти сборщик мусора обычно выполняет очистку loH, которая включает создание списка расположений памяти, занятых мертвыми объектами, и которые можно повторно использовать для удовлетворения будущих запросов на выделение памяти для больших объектов. Однако в приложениях, которые используют loH для хранения временных объектов, фрагментация памяти также может негативно повлиять на производительность. В этом случае можно использовать LargeObjectHeapCompactionMode свойство для сжатия, а не просто очистки loH во время сборки мусора.
Значением LargeObjectHeapCompactionMode по умолчанию является свойство GCLargeObjectHeapCompactionMode.Default, указывающее, что loH не сжимается во время сборок мусора. Если присвоить свойству значение GCLargeObjectHeapCompactionMode.CompactOnce, loH сжимается во время следующей полной блокировки сборки мусора, а значение свойства сбрасывается в GCLargeObjectHeapCompactionMode.Default.
Замечание
Фоновые сборки мусора не блокируются. Это означает, что если для свойства GCLargeObjectHeapCompactionMode.CompactOnceзадано LargeObjectHeapCompactionMode значение , все коллекции фонового поколения 2, которые происходят впоследствии, не сжимают loH. Только первая коллекция блокировок поколения 2 сжимает loH.
LargeObjectHeapCompactionMode После установки GCLargeObjectHeapCompactionMode.CompactOnceсвойства следующая полная блокировка сборки мусора (и сжатие loH) происходит в неопределенное время в будущем. Вы можете немедленно сжать loH с помощью следующего кода:
GCSettings.LargeObjectHeapCompactionMode = GCLargeObjectHeapCompactionMode.CompactOnce;
GC.Collect();
GCSettings.LargeObjectHeapCompactionMode = GCLargeObjectHeapCompactionMode.CompactOnce
GC.Collect()