Share via


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를 광범위하게 사용하여 일시적인 개체를 저장하는 앱에서는 메모리 조각화가 성능에 부정적인 영향을 줄 수 있습니다. 이 경우 가비지 수집 중에 단순히 LOH를 스윕하는 대신 속성을 사용하여 LargeObjectHeapCompactionMode 압축할 수 있습니다.

속성의 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()

적용 대상

추가 정보