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

적용 대상

추가 정보