GCSettings.LargeObjectHeapCompactionMode 속성

정의

전체 차단 가비지 수집이 대형 개체 힙(LOH)을 압축할지 여부를 나타내는 값을 가져오거나 설정합니다.Gets or sets a value that indicates whether a full blocking garbage collection compacts the large object heap (LOH).

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

속성 값

전체 차단 가비지 수집 중 LOH를 압축할지 여부를 나타내는 열거형 값 중 하나입니다.One of the enumeration values that indicates whether a full blocking garbage collection compacts the LOH.

특성

설명

LOH는 85,000 바이트 보다 필요로 하는 큰 개체 (예: 배열)에 대 한 메모리 할당에 사용 됩니다.The LOH is used for allocating memory for large objects (such as arrays) that require more than 85,000 bytes. 큰 메모리 블록을 복사 하는 성능에 영향이 발생 가비지 수집기가 일반적으로 비우고 LOH를 비활성 개체에 의해 점유 된는 및에 대 한 향후 요청을 충족 하기 위해 다시 사용할 수 있는 메모리 위치 목록을 작성 합니다. 큰 개체의 메모리를 할당 합니다.Because of the performance impact of copying large blocks of memory, the garbage collector ordinarily sweeps the LOH, which involves creating a list of the memory locations that were occupied by dead objects and that can be reused to satisfy future requests for allocation of memory for large objects. 그러나 광범위 하 게 하는 앱에서 사용 하 여 LOH의 임시 개체를 메모리 조각화 성능 영향을 미칠 수도 수를 저장 합니다.However, in apps that make extensive use of the LOH to store transient objects, memory fragmentation can also adversely impact performance. 이 경우에 사용할 수는 LargeObjectHeapCompactionMode 가비지 수집 중 LOH를 단순히 스윕 대신 압축 하는 속성입니다.In this case, it is possible to use the LargeObjectHeapCompactionMode property to compact rather than simply sweep the LOH during a garbage collection.

기본값은 LargeObjectHeapCompactionMode 속성은 GCLargeObjectHeapCompactionMode.Default, 가비지 컬렉션 중 LOH는 압축 되지 않습니다 나타냅니다.The default value of the LargeObjectHeapCompactionMode property is GCLargeObjectHeapCompactionMode.Default, which indicates that the LOH is not compacted during garbage collections. 속성의 값을 할당 GCLargeObjectHeapCompactionMode.CompactOnce, 다음 전체 차단 가비지 수집 중 LOH를 압축 하 고 속성 값을 다시 설정 됩니다 GCLargeObjectHeapCompactionMode.Default합니다.If you assign the property a value of GCLargeObjectHeapCompactionMode.CompactOnce, the LOH is compacted during the next full blocking garbage collection, and the property value is reset to GCLargeObjectHeapCompactionMode.Default.

참고

백그라운드 가비지 컬렉션을 차단 하지.Background garbage collections are not blocking. 즉, 설정 하는 경우는 LargeObjectHeapCompactionMode 속성을 GCLargeObjectHeapCompactionMode.CompactOnce, 백그라운드 세대 2 컬렉션 이후에 발생 하는 LOH를 압축 되지 않습니다.This means that, if you set the LargeObjectHeapCompactionMode property to GCLargeObjectHeapCompactionMode.CompactOnce, any background generation 2 collections that occur subsequently do not compact the LOH. 만 첫 번째 차단 세대 2 컬렉션 LOH를 압축합니다.Only the first blocking generation 2 collection compacts the LOH.

후는 LargeObjectHeapCompactionMode 속성이 GCLargeObjectHeapCompactionMode.CompactOnce, 결정 되지 않은 향후에 다음 전체 차단 가비지 수집 (및 LOH 압축)가 발생 합니다.After the LargeObjectHeapCompactionMode property is set to GCLargeObjectHeapCompactionMode.CompactOnce, the next full blocking garbage collection (and compaction of the LOH) occurs at an indeterminate future time. 다음과 같은 코드를 사용 하 여 즉시 LOH를 압축할 수 있습니다.You can compact the LOH immediately by using code like the following:

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

적용 대상

추가 정보