GC.TryStartNoGCRegion 메서드

정의

중요한 경로를 실행하는 동안에는 가비지 수집이 허용되지 않습니다.

오버로드

TryStartNoGCRegion(Int64, Int64, Boolean)

큰 개체 힙 및 작은 개체 힙에 지정된 양의 메모리를 사용할 수 있는 경우 중요한 경로를 실행하는 동안 가비지 수집이 허용되지 않고, 초기에 사용할 수 있는 메모리가 충분하지 않은 경우 가비지 수집기가 전체 차단 가비지 수집 수행 여부를 제어합니다.

TryStartNoGCRegion(Int64, Int64)

큰 개체 힙 및 작은 개체 힙에 지정된 양의 메모리를 사용할 수 있는 경우 중요한 경로를 실행하는 동안에는 가비지 수집이 허용되지 않습니다.

TryStartNoGCRegion(Int64, Boolean)

지정된 양의 메모리를 사용할 수 있는 경우 중요한 경로를 실행하는 동안 가비지 수집이 허용되지 않고, 초기에 사용할 수 있는 메모리가 충분하지 않은 경우 가비지 수집기가 전체 차단 가비지 수집 수행 여부를 제어합니다.

TryStartNoGCRegion(Int64)

지정된 양의 메모리를 사용할 수 있는 경우 중요한 경로를 실행하는 동안에는 가비지 수집이 허용되지 않습니다.

설명

중요

메서드에 대한 호출을 TryStartNoGCRegion 중첩할 수 없으며 런타임이 EndNoGCRegion 현재 GC 지역 대기 시간 모드가 없는 경우에만 메서드를 호출해야 합니다. 즉, 를 여러 번 호출 TryStartNoGCRegion 하면 안 됩니다(첫 번째 메서드 호출 후 후속 호출은 성공하지 못함). 첫 번째 호출 TryStartNoGCRegion 이 성공했다고 해서 호출 EndNoGCRegion 이 성공할 것으로 예상해서는 안 됩니다.

TryStartNoGCRegion(Int64, Int64, Boolean)

큰 개체 힙 및 작은 개체 힙에 지정된 양의 메모리를 사용할 수 있는 경우 중요한 경로를 실행하는 동안 가비지 수집이 허용되지 않고, 초기에 사용할 수 있는 메모리가 충분하지 않은 경우 가비지 수집기가 전체 차단 가비지 수집 수행 여부를 제어합니다.

public:
 static bool TryStartNoGCRegion(long totalSize, long lohSize, bool disallowFullBlockingGC);
public static bool TryStartNoGCRegion (long totalSize, long lohSize, bool disallowFullBlockingGC);
[System.Security.SecurityCritical]
public static bool TryStartNoGCRegion (long totalSize, long lohSize, bool disallowFullBlockingGC);
static member TryStartNoGCRegion : int64 * int64 * bool -> bool
[<System.Security.SecurityCritical>]
static member TryStartNoGCRegion : int64 * int64 * bool -> bool
Public Shared Function TryStartNoGCRegion (totalSize As Long, lohSize As Long, disallowFullBlockingGC As Boolean) As Boolean

매개 변수

totalSize
Int64

가비지 수집을 트리거하지 않고 할당할 메모리 양(바이트)입니다. totalSize -lohSize는 임시 세그먼트 크기보다 작거나 같아야 합니다. 임시 세그먼트 크기에 대한 자세한 내용은 가비지 컬렉션 기본 사항 문서에서 "임시 세대 및 세그먼트" 섹션을 참조하세요.

lohSize
Int64

큰 개체 힙(LOH) 할당용으로 사용하는 totalSize의 바이트 수입니다.

disallowFullBlockingGC
Boolean

가비지 수집기가 처음에 작은 개체 힙(SOH) 및 LOH에서 지정된 메모리를 할당할 수 없는 경우 전체 차단 가비지 수집을 생략하려면 true이고, 그렇지 않은 경우 false입니다.

반환

런타임이 필요한 메모리 양을 커밋할 수 있고 가비지 수집기를 비 GC 지역 대기 시간 모드에서 사용할 수 있으면 true이고, 그렇지 않으면 false입니다.

특성

예외

totalSize - lohSize는 임시 세그먼트 크기를 초과합니다.

프로세스가 이미 비 GC 지역 대기 시간 모드에 있습니다.

설명

메서드는 TryStartNoGCRegion(Int64, Int64, Boolean) 앱이 중요한 코드 영역을 실행하는 동안 가비지 수집을 허용하지 않는 GC 지역 대기 시간 모드에서 가비지 수집기를 배치하려고 시도합니다. 런타임이 처음에 요청된 메모리 양을 할당할 수 없고 disallowFullBlockingGC 인수가 false인 경우 가비지 수집기는 추가 메모리를 해제하기 위해 전체 차단 가비지 수집을 수행합니다. 그렇지 않으면 할당이 실패하고 메서드는 를 반환합니다 false. LOH 및 totalSize - lohSize SOH(작은 개체 힙)에 할당 lohSize 할 수 있는 경우 가비지 수집기는 GC 지역 대기 시간 모드를 입력하지 않습니다.

lohSize 는 LOH의 중요 경로에서 발생하는 모든 메모리 할당을 처리할 수 있을 만큼 커야 하며 totalSize - lohSize SOH에 대한 중요한 경로에서 발생하는 모든 메모리 할당을 처리할 수 있을 만큼 커야 합니다. 여기에는 앱별 할당과 런타임이 앱을 대신하여 할당하는 할당이 포함됩니다.

true 처음에 사용 가능한 메모리가 충분하지 않은 경우 전체 차단 가비지 수집을 방지하기 위해 로 설정하는 disallowFullBlockingGC 것이 부하 분산 시나리오에서 가장 유용합니다. 한 시스템은 이 메서드를 호출하고 를 반환하는 경우 요청을 수락할 준비가 된 것으로 보고하고 를 반환truefalse하는 경우 부하 분산 장치에서 요청을 다른 시스템으로 리디렉션하도록 할 수 있습니다. 그런 다음 메서드를 호출하여 요청을 처리하지 않을 때 전체 차단 가비지 수집을 Collect(Int32, GCCollectionMode, Boolean, Boolean) 수행할 수 있습니다.

중요

메서드에 대한 호출을 TryStartNoGCRegion 중첩할 수 없으며 런타임이 EndNoGCRegion 현재 GC 지역 대기 시간 모드가 없는 경우에만 메서드를 호출해야 합니다. 즉, 를 여러 번 호출 TryStartNoGCRegion 하면 안 됩니다(첫 번째 메서드 호출 후 후속 호출은 성공하지 못함). 첫 번째 호출 TryStartNoGCRegion 이 성공했다고 해서 호출 EndNoGCRegion 이 성공할 것으로 예상해서는 안 됩니다.

메서드를 호출하여 GC 지역 대기 시간 없음 모드를 종료합니다 EndNoGCRegion .

추가 정보

적용 대상

TryStartNoGCRegion(Int64, Int64)

큰 개체 힙 및 작은 개체 힙에 지정된 양의 메모리를 사용할 수 있는 경우 중요한 경로를 실행하는 동안에는 가비지 수집이 허용되지 않습니다.

public:
 static bool TryStartNoGCRegion(long totalSize, long lohSize);
public static bool TryStartNoGCRegion (long totalSize, long lohSize);
[System.Security.SecurityCritical]
public static bool TryStartNoGCRegion (long totalSize, long lohSize);
static member TryStartNoGCRegion : int64 * int64 -> bool
[<System.Security.SecurityCritical>]
static member TryStartNoGCRegion : int64 * int64 -> bool
Public Shared Function TryStartNoGCRegion (totalSize As Long, lohSize As Long) As Boolean

매개 변수

totalSize
Int64

가비지 수집을 트리거하지 않고 할당할 메모리 양(바이트)입니다. totalSize -lohSize는 임시 세그먼트 크기보다 작거나 같아야 합니다. 임시 세그먼트 크기에 대한 자세한 내용은 가비지 컬렉션 기본 사항 문서에서 "임시 세대 및 세그먼트" 섹션을 참조하세요.

lohSize
Int64

큰 개체 힙(LOH) 할당용으로 사용하는 totalSize의 바이트 수입니다.

반환

런타임이 필요한 메모리 양을 커밋할 수 있고 가비지 수집기를 비 GC 지역 대기 시간 모드에서 사용할 수 있으면 true이고, 그렇지 않으면 false입니다.

특성

예외

totalSize - lohSize는 임시 세그먼트 크기를 초과합니다.

프로세스가 이미 비 GC 지역 대기 시간 모드에 있습니다.

설명

메서드는 TryStartNoGCRegion(Int64, Int64) 앱이 중요한 코드 영역을 실행하는 동안 가비지 수집을 허용하지 않는 GC 지역 대기 시간 모드에서 가비지 수집기를 배치하려고 시도합니다. 런타임이 처음에 요청된 메모리 양을 할당할 수 없는 경우 가비지 수집기는 추가 메모리를 해제하기 위해 전체 차단 가비지 수집을 수행합니다. LOH 및 totalSize - lohSize SOH(작은 개체 힙)에 할당 lohSize 할 수 있는 경우 가비지 수집기는 GC 지역 대기 시간 모드를 입력하지 않습니다.

lohSize 는 LOH의 중요 경로에서 발생하는 모든 메모리 할당을 처리할 수 있을 만큼 커야 하며 totalSize - lohSize SOH에 대한 중요한 경로에서 발생하는 모든 메모리 할당을 처리할 수 있을 만큼 커야 합니다. 여기에는 앱별 할당과 런타임이 앱을 대신하여 할당하는 할당이 포함됩니다.

중요

메서드에 대한 호출을 TryStartNoGCRegion 중첩할 수 없으며 런타임이 EndNoGCRegion 현재 GC 지역 대기 시간 모드가 없는 경우에만 메서드를 호출해야 합니다. 즉, 를 여러 번 호출 TryStartNoGCRegion 하면 안 됩니다(첫 번째 메서드 호출 후 후속 호출은 성공하지 못함). 첫 번째 호출 TryStartNoGCRegion 이 성공했다고 해서 호출 EndNoGCRegion 이 성공할 것으로 예상해서는 안 됩니다.

메서드를 호출하여 GC 지역 대기 시간 없음 모드를 종료합니다 EndNoGCRegion .

추가 정보

적용 대상

TryStartNoGCRegion(Int64, Boolean)

지정된 양의 메모리를 사용할 수 있는 경우 중요한 경로를 실행하는 동안 가비지 수집이 허용되지 않고, 초기에 사용할 수 있는 메모리가 충분하지 않은 경우 가비지 수집기가 전체 차단 가비지 수집 수행 여부를 제어합니다.

public:
 static bool TryStartNoGCRegion(long totalSize, bool disallowFullBlockingGC);
public static bool TryStartNoGCRegion (long totalSize, bool disallowFullBlockingGC);
[System.Security.SecurityCritical]
public static bool TryStartNoGCRegion (long totalSize, bool disallowFullBlockingGC);
static member TryStartNoGCRegion : int64 * bool -> bool
[<System.Security.SecurityCritical>]
static member TryStartNoGCRegion : int64 * bool -> bool
Public Shared Function TryStartNoGCRegion (totalSize As Long, disallowFullBlockingGC As Boolean) As Boolean

매개 변수

totalSize
Int64

가비지 수집을 트리거하지 않고 할당할 메모리 양(바이트)입니다. 임시 세그먼트 크기보다 작거나 같아야 합니다. 임시 세그먼트 크기에 대한 자세한 내용은 가비지 컬렉션 기본 사항 문서에서 "임시 세대 및 세그먼트" 섹션을 참조하세요.

disallowFullBlockingGC
Boolean

가비지 수집기가 처음에 true 바이트를 할당할 수 없는 경우 전체 차단 가비지 수집을 생략하려면 totalSize이고, 그렇지 않은 경우 false입니다.

반환

런타임이 필요한 메모리 양을 커밋할 수 있고 가비지 수집기를 비 GC 지역 대기 시간 모드에서 사용할 수 있으면 true이고, 그렇지 않으면 false입니다.

특성

예외

totalSize가 임시 세그먼트 크기를 초과합니다.

프로세스가 이미 비 GC 지역 대기 시간 모드에 있습니다.

설명

메서드는 TryStartNoGCRegion(Int64, Boolean) 앱이 중요한 코드 영역을 실행하는 동안 가비지 수집을 허용하지 않는 GC 지역 대기 시간 모드에서 가비지 수집기를 배치하려고 시도합니다. 런타임이 처음에 요청된 메모리 양을 할당할 수 없고 disallowFullBlockingGC 인수가 false인 경우 가비지 수집기는 추가 메모리를 해제하기 위해 전체 차단 가비지 수집을 수행합니다. 그렇지 않으면 할당이 실패하고 메서드는 를 반환합니다 false. 가비지 수집기는 필요한 양의 메모리를 할당할 수 있는 경우 GC 지역 대기 시간 모드가 되지 않습니다. 이 경우 실제로 2 * totalSize 입니다(작은 개체 힙 및 totalSize 큰 개체 힙에 할당하려고 totalSize 시도).

totalSize 는 중요한 경로에서 발생하는 모든 메모리 할당을 처리할 수 있을 만큼 커야 합니다. 여기에는 앱별 할당과 런타임이 앱을 대신하여 할당하는 할당이 포함됩니다.

true 처음에 사용 가능한 메모리가 충분하지 않은 경우 전체 차단 가비지 수집을 방지하기 위해 로 설정하는 disallowFullBlockingGC 것이 부하 분산 시나리오에서 가장 유용합니다. 한 시스템은 이 메서드를 호출하고 를 반환하는 경우 요청을 수락할 준비가 된 것으로 보고하고 를 반환truefalse하는 경우 부하 분산 장치에서 요청을 다른 시스템으로 리디렉션하도록 할 수 있습니다. 그런 다음 메서드를 호출하여 요청을 처리하지 않을 때 전체 차단 가비지 수집을 Collect(Int32, GCCollectionMode, Boolean, Boolean) 수행할 수 있습니다.

중요

메서드에 대한 호출을 TryStartNoGCRegion 중첩할 수 없으며 런타임이 EndNoGCRegion 현재 GC 지역 대기 시간 모드가 없는 경우에만 메서드를 호출해야 합니다. 즉, 를 여러 번 호출 TryStartNoGCRegion 하면 안 됩니다(첫 번째 메서드 호출 후 후속 호출은 성공하지 못함). 첫 번째 호출 TryStartNoGCRegion 이 성공했다고 해서 호출 EndNoGCRegion 이 성공할 것으로 예상해서는 안 됩니다.

메서드를 호출하여 GC 지역 대기 시간 없음 모드를 종료합니다 EndNoGCRegion .

추가 정보

적용 대상

TryStartNoGCRegion(Int64)

지정된 양의 메모리를 사용할 수 있는 경우 중요한 경로를 실행하는 동안에는 가비지 수집이 허용되지 않습니다.

public:
 static bool TryStartNoGCRegion(long totalSize);
public static bool TryStartNoGCRegion (long totalSize);
[System.Security.SecurityCritical]
public static bool TryStartNoGCRegion (long totalSize);
static member TryStartNoGCRegion : int64 -> bool
[<System.Security.SecurityCritical>]
static member TryStartNoGCRegion : int64 -> bool
Public Shared Function TryStartNoGCRegion (totalSize As Long) As Boolean

매개 변수

totalSize
Int64

가비지 수집을 트리거하지 않고 할당할 메모리 양(바이트)입니다. 임시 세그먼트 크기보다 작거나 같아야 합니다. 임시 세그먼트 크기에 대한 자세한 내용은 가비지 컬렉션 기본 사항 문서에서 "임시 세대 및 세그먼트" 섹션을 참조하세요.

반환

런타임이 필요한 메모리 양을 커밋할 수 있고 가비지 수집기를 비 GC 지역 대기 시간 모드에서 사용할 수 있으면 true이고, 그렇지 않으면 false입니다.

특성

예외

totalSize가 임시 세그먼트 크기를 초과합니다.

프로세스가 이미 비 GC 지역 대기 시간 모드에 있습니다.

설명

메서드는 TryStartNoGCRegion(Int64) 앱이 중요한 코드 영역을 실행하는 동안 가비지 수집을 허용하지 않는 GC 지역 대기 시간 모드에서 가비지 수집기를 배치하려고 시도합니다. 런타임이 처음에 요청된 메모리 양을 할당할 수 없는 경우 가비지 수집기는 추가 메모리를 해제하기 위해 전체 차단 가비지 수집을 수행합니다. 가비지 수집기는 필요한 양의 메모리를 할당할 수 있는 경우 GC 지역 대기 시간 모드가 되지 않습니다. 이 경우 실제로는 2 * totalSize 바이트입니다(작은 개체 힙에 대한 바이트 및 totalSize 큰 개체 힙에 대한 바이트 할당 totalSize 시도).

totalSize 는 중요한 경로에서 발생하는 모든 메모리 할당을 처리할 수 있을 만큼 커야 합니다. 여기에는 앱별 할당과 런타임이 앱을 대신하여 할당하는 할당이 포함됩니다.

중요

메서드에 대한 호출을 TryStartNoGCRegion 중첩할 수 없으며 런타임이 EndNoGCRegion 현재 GC 지역 대기 시간 모드가 없는 경우에만 메서드를 호출해야 합니다. 즉, 를 여러 번 호출 TryStartNoGCRegion 하면 안 됩니다(첫 번째 메서드 호출 후 후속 호출은 성공하지 못함). 첫 번째 호출 TryStartNoGCRegion 이 성공했다고 해서 호출 EndNoGCRegion 이 성공할 것으로 예상해서는 안 됩니다.

메서드를 호출하여 GC 지역 대기 시간 없음 모드를 종료합니다 EndNoGCRegion .

추가 정보

적용 대상