다음을 통해 공유


GC.AddMemoryPressure(Int64) 메서드

정의

가비지 수집을 예약할 때 고려해야 할 많은 양의 관리되지 않는 메모리 할당을 런타임에 알립니다.

public:
 static void AddMemoryPressure(long bytesAllocated);
[System.Security.SecurityCritical]
public static void AddMemoryPressure (long bytesAllocated);
public static void AddMemoryPressure (long bytesAllocated);
[<System.Security.SecurityCritical>]
static member AddMemoryPressure : int64 -> unit
static member AddMemoryPressure : int64 -> unit
Public Shared Sub AddMemoryPressure (bytesAllocated As Long)

매개 변수

bytesAllocated
Int64

할당된 관리되지 않는 메모리의 증가량입니다.

특성

예외

bytesAllocated가 0보다 작거나 같은 경우

또는

32비트 컴퓨터 bytesAllocated 에서 는 Int32.MaxValue보다 큽합니다.

설명

가비지 수집을 예약할 시기를 결정할 때 런타임은 관리되는 메모리가 할당되는 양을 고려합니다. 작은 관리형 개체가 대량의 관리되지 않는 메모리를 할당하는 경우 런타임은 관리되는 메모리만 고려하므로 가비지 수집 예약의 긴급성을 과소 평가합니다. 메서드는 AddMemoryPressure 시스템 메모리에 대한 이러한 추가 압력을 런타임에 알릴 수 있습니다.

RemoveMemoryPressure 메서드는 AddMemoryPressure 비관리형 리소스를 해제하기 위해 종료자에만 의존하는 형식에 대해서만 성능을 향상시킵니다. 삭제 패턴을 따르는 형식에서는 이러한 메서드를 사용할 필요가 없습니다. 여기서 종료자는 형식의 소비자가 를 호출Dispose하는 것을 잊어버린 경우에만 관리되지 않는 리소스를 클린 데 사용됩니다. 개체 종료 및 삭제 패턴에 대한 자세한 내용은 관리되지 않는 리소스 정리를 참조하세요.

가장 간단한 사용 패턴에서 관리되는 개체는 생성자에서 관리되지 않는 메모리를 할당하고 메서드에서 Finalize 해제합니다. AddMemoryPressure 관리되지 않는 메모리를 할당한 후 메서드를 호출하고 해제한 RemoveMemoryPressure 후 메서드를 호출합니다.

관리되는 개체의 수명 동안 관리되지 않는 메모리 할당이 크게 변경되는 더 복잡한 시나리오에서는 및 RemoveMemoryPressure 메서드를 호출 AddMemoryPressure 하여 이러한 증분 변경 내용을 런타임에 전달할 수 있습니다.

주의

추가하는 압력의 양을 정확히 제거해야 합니다. 그렇게 하지 않으면 오랜 시간 동안 실행 되는 애플리케이션에서 시스템의 성능이 저하 될 수 있습니다.

적용 대상