Udostępnij za pośrednictwem


GC.TryStartNoGCRegion Metoda

Definicja

Próbuje uniemożliwić odzyskiwanie pamięci podczas wykonywania ścieżki krytycznej.

Przeciążenia

TryStartNoGCRegion(Int64, Int64, Boolean)

Próbuje uniemożliwić odzyskiwanie pamięci podczas wykonywania ścieżki krytycznej, jeśli określona ilość pamięci jest dostępna dla stert dużego obiektu i stertę małych obiektów, a także określa, czy moduł odśmiecanie pamięci wykonuje pełne blokowanie odzyskiwania pamięci, jeśli początkowo nie jest dostępna wystarczająca ilość pamięci.

TryStartNoGCRegion(Int64, Int64)

Próbuje uniemożliwić odzyskiwanie pamięci podczas wykonywania ścieżki krytycznej, jeśli określona ilość pamięci jest dostępna dla dużego sterty obiektu i stertę małych obiektów.

TryStartNoGCRegion(Int64, Boolean)

Próbuje uniemożliwić odzyskiwanie pamięci podczas wykonywania ścieżki krytycznej, jeśli jest dostępna określona ilość pamięci, i określa, czy moduł odśmiecanie pamięci wykonuje pełne blokowanie odzyskiwania pamięci, jeśli początkowo nie jest dostępna wystarczająca ilość pamięci.

TryStartNoGCRegion(Int64)

Próbuje uniemożliwić odzyskiwanie pamięci podczas wykonywania ścieżki krytycznej, jeśli jest dostępna określona ilość pamięci.

Uwagi

Ważne

Nie można zagnieżdżać wywołań metody TryStartNoGCRegion i należy wywołać EndNoGCRegion metodę tylko wtedy, gdy środowisko uruchomieniowe nie jest obecnie w trybie opóźnienia regionu GC. Innymi słowy, nie należy wywoływać TryStartNoGCRegion wiele razy (po pierwszym wywołaniu metody kolejne wywołania nie powiedzie się) i nie należy oczekiwać, że wywołania EndNoGCRegion powiedzą się tylko dlatego, że pierwsze wywołanie powiodło się TryStartNoGCRegion .

TryStartNoGCRegion(Int64, Int64, Boolean)

Źródło:
GC.CoreCLR.cs
Źródło:
GC.CoreCLR.cs
Źródło:
GC.CoreCLR.cs

Próbuje uniemożliwić odzyskiwanie pamięci podczas wykonywania ścieżki krytycznej, jeśli określona ilość pamięci jest dostępna dla stert dużego obiektu i stertę małych obiektów, a także określa, czy moduł odśmiecanie pamięci wykonuje pełne blokowanie odzyskiwania pamięci, jeśli początkowo nie jest dostępna wystarczająca ilość pamięci.

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

Parametry

totalSize
Int64

Ilość pamięci w bajtach do przydzielenia bez wyzwalania odzyskiwania pamięci. totalSize - lohSize musi być mniejsza lub równa rozmiarowi segmentu efemerycznego. Aby uzyskać informacje na temat rozmiaru segmentu efemerycznego, zobacz sekcję "Efemeryczna generacja i segmenty" w artykule Podstawy odzyskiwania pamięci .

lohSize
Int64

Liczba bajtów używanych totalSize do alokacji dużych stertów obiektów (LOH).

disallowFullBlockingGC
Boolean

true aby pominąć pełne blokowanie odzyskiwania pamięci, jeśli moduł odśmiecenia pamięci początkowo nie może przydzielić określonej pamięci na małej stercie obiektów (SOH) i LOH; w przeciwnym razie , false.

Zwraca

true jeśli środowisko uruchomieniowe mogło zatwierdzić wymaganą ilość pamięci, a moduł odśmiecanie pamięci nie może wprowadzić trybu opóźnienia regionu GC; w przeciwnym razie , false.

Atrybuty

Wyjątki

totalSize - lohSize przekracza rozmiar segmentu efemerycznego.

Proces nie jest już w trybie opóźnienia regionu GC.

Uwagi

Metoda TryStartNoGCRegion(Int64, Int64, Boolean) próbuje umieścić moduł odśmiecanie pamięci w trybie opóźnienia regionu GC, który nie zezwala na odzyskiwanie pamięci, podczas gdy aplikacja wykonuje krytyczny region kodu. Jeśli środowisko uruchomieniowe nie może początkowo przydzielić żądanej ilości pamięci, a disallowFullBlockingGC argument to false, moduł odśmiecenia pamięci wykonuje pełne blokowanie odzyskiwania pamięci w celu zwolnienia dodatkowej pamięci; w przeciwnym razie alokacja kończy się niepowodzeniem, a metoda zwraca falsewartość . Moduł odśmiecanie pamięci nie wprowadza trybu opóźnienia regionu GC, jeśli jest w stanie przydzielić lohSize dla LOH i totalSize - lohSize stertę małych obiektów (SOH).

lohSize musi być wystarczająco duży, aby obsługiwać wszystkie alokacje pamięci, które występują w ścieżce krytycznej dla LOH, i totalSize - lohSize muszą być wystarczająco duże, aby obsługiwać wszystkie alokacje pamięci, które występują w ścieżce krytycznej dla SOH. Obejmuje to alokacje aplikacji, a także alokacje, które środowisko uruchomieniowe wykonuje w imieniu aplikacji.

Ustawienie disallowFullBlockingGC , aby true zapobiec pełnemu blokowaniu odzyskiwania pamięci, jeśli początkowo jest niedostępna ilość pamięci, jest najbardziej przydatne w scenariuszach równoważenia obciążenia: jeden system może wywołać tę metodę i zgłosić się jako gotowy do akceptowania żądań, jeśli zwraca żądania , i mieć żądania przekierowania modułu równoważenia obciążenia do innych systemów, jeśli truezwraca false. Następnie może wykonać pełne blokowanie odzyskiwania pamięci, gdy nie obsługuje żądań przez wywołanie Collect(Int32, GCCollectionMode, Boolean, Boolean) metody .

Ważne

Nie można zagnieżdżać wywołań metody TryStartNoGCRegion i należy wywołać EndNoGCRegion metodę tylko wtedy, gdy środowisko uruchomieniowe nie jest obecnie w trybie opóźnienia regionu GC. Innymi słowy, nie należy wywoływać TryStartNoGCRegion wiele razy (po pierwszym wywołaniu metody kolejne wywołania nie powiedzie się) i nie należy oczekiwać, że wywołania EndNoGCRegion powiedzą się tylko dlatego, że pierwsze wywołanie powiodło się TryStartNoGCRegion .

Tryb opóźnienia regionu GC nie jest zamykany, wywołując metodę EndNoGCRegion .

Zobacz też

Dotyczy

TryStartNoGCRegion(Int64, Int64)

Źródło:
GC.CoreCLR.cs
Źródło:
GC.CoreCLR.cs
Źródło:
GC.CoreCLR.cs

Próbuje uniemożliwić odzyskiwanie pamięci podczas wykonywania ścieżki krytycznej, jeśli określona ilość pamięci jest dostępna dla dużego sterty obiektu i stertę małych obiektów.

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

Parametry

totalSize
Int64

Ilość pamięci w bajtach do przydzielenia bez wyzwalania odzyskiwania pamięci. totalSize - lohSize musi być mniejsza lub równa rozmiarowi segmentu efemerycznego. Aby uzyskać informacje na temat rozmiaru segmentu efemerycznego, zobacz sekcję "Efemeryczna generacja i segmenty" w artykule Podstawy odzyskiwania pamięci .

lohSize
Int64

Liczba bajtów używanych totalSize do alokacji dużych stertów obiektów (LOH).

Zwraca

true jeśli środowisko uruchomieniowe mogło zatwierdzić wymaganą ilość pamięci, a moduł odśmiecanie pamięci nie może wprowadzić trybu opóźnienia regionu GC; w przeciwnym razie , false.

Atrybuty

Wyjątki

totalSize - lohSize przekracza rozmiar segmentu efemerycznego.

Proces nie jest już w trybie opóźnienia regionu GC.

Uwagi

Metoda TryStartNoGCRegion(Int64, Int64) próbuje umieścić moduł odśmiecanie pamięci w trybie opóźnienia regionu GC, który nie zezwala na odzyskiwanie pamięci, podczas gdy aplikacja wykonuje krytyczny region kodu. Jeśli środowisko uruchomieniowe nie może początkowo przydzielić żądanej ilości pamięci, moduł odśmiecenia pamięci wykonuje pełne blokowanie odzyskiwania pamięci w celu zwolnienia dodatkowej pamięci. Moduł odśmiecanie pamięci nie wprowadza trybu opóźnienia regionu GC, jeśli jest w stanie przydzielić lohSize dla LOH i totalSize - lohSize stertę małych obiektów (SOH).

lohSize musi być wystarczająco duży, aby obsługiwać wszystkie alokacje pamięci, które występują w ścieżce krytycznej dla LOH, i totalSize - lohSize muszą być wystarczająco duże, aby obsługiwać wszystkie alokacje pamięci, które występują w ścieżce krytycznej dla SOH. Obejmuje to alokacje aplikacji, a także alokacje, które środowisko uruchomieniowe wykonuje w imieniu aplikacji.

Ważne

Nie można zagnieżdżać wywołań metody TryStartNoGCRegion i należy wywołać EndNoGCRegion metodę tylko wtedy, gdy środowisko uruchomieniowe nie jest obecnie w trybie opóźnienia regionu GC. Innymi słowy, nie należy wywoływać TryStartNoGCRegion wiele razy (po pierwszym wywołaniu metody kolejne wywołania nie powiedzie się) i nie należy oczekiwać, że wywołania EndNoGCRegion powiedzą się tylko dlatego, że pierwsze wywołanie powiodło się TryStartNoGCRegion .

Tryb opóźnienia regionu GC nie jest zamykany, wywołując metodę EndNoGCRegion .

Zobacz też

Dotyczy

TryStartNoGCRegion(Int64, Boolean)

Źródło:
GC.CoreCLR.cs
Źródło:
GC.CoreCLR.cs
Źródło:
GC.CoreCLR.cs

Próbuje uniemożliwić odzyskiwanie pamięci podczas wykonywania ścieżki krytycznej, jeśli jest dostępna określona ilość pamięci, i określa, czy moduł odśmiecanie pamięci wykonuje pełne blokowanie odzyskiwania pamięci, jeśli początkowo nie jest dostępna wystarczająca ilość pamięci.

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

Parametry

totalSize
Int64

Ilość pamięci w bajtach do przydzielenia bez wyzwalania odzyskiwania pamięci. Musi być mniejszy lub równy rozmiarowi segmentu efemerycznego. Aby uzyskać informacje na temat rozmiaru segmentu efemerycznego, zobacz sekcję "Efemeryczna generacja i segmenty" w artykule Podstawy odzyskiwania pamięci .

disallowFullBlockingGC
Boolean

true aby pominąć pełne blokowanie odzyskiwania pamięci, jeśli moduł odśmiecenia pamięci początkowo nie może przydzielić totalSize bajtów; w przeciwnym razie false.

Zwraca

true jeśli środowisko uruchomieniowe mogło zatwierdzić wymaganą ilość pamięci, a moduł odśmiecanie pamięci nie może wprowadzić trybu opóźnienia regionu GC; w przeciwnym razie , false.

Atrybuty

Wyjątki

totalSize przekracza rozmiar segmentu efemerycznego.

Proces nie jest już w trybie opóźnienia regionu GC.

Uwagi

Metoda TryStartNoGCRegion(Int64, Boolean) próbuje umieścić moduł odśmiecanie pamięci w trybie opóźnienia regionu GC, który nie zezwala na odzyskiwanie pamięci, podczas gdy aplikacja wykonuje krytyczny region kodu. Jeśli środowisko uruchomieniowe nie może początkowo przydzielić żądanej ilości pamięci, a disallowFullBlockingGC argument to false, moduł odśmiecenia pamięci wykonuje pełne blokowanie odzyskiwania pamięci w celu zwolnienia dodatkowej pamięci; w przeciwnym razie alokacja kończy się niepowodzeniem, a metoda zwraca falsewartość . Moduł odśmiecanie pamięci nie wprowadza trybu opóźnienia regionu GC, jeśli jest w stanie przydzielić wymaganą ilość pamięci, co w tym przypadku jest rzeczywiście 2 * totalSize (próbuje przydzielić totalSize dla stertę małego obiektu i totalSize stertę dużego obiektu).

totalSize musi być wystarczająco duża, aby obsługiwać wszystkie alokacje pamięci występujące w ścieżce krytycznej. Obejmuje to alokacje aplikacji, a także alokacje, które środowisko uruchomieniowe wykonuje w imieniu aplikacji.

Ustawienie disallowFullBlockingGC , aby true zapobiec pełnemu blokowaniu odzyskiwania pamięci, jeśli początkowo jest niedostępna ilość pamięci, jest najbardziej przydatne w scenariuszach równoważenia obciążenia: jeden system może wywołać tę metodę i zgłosić się jako gotowy do akceptowania żądań, jeśli zwraca żądania , i mieć żądania przekierowania modułu równoważenia obciążenia do innych systemów, jeśli truezwraca false. Następnie może wykonać pełne blokowanie odzyskiwania pamięci, gdy nie obsługuje żądań przez wywołanie Collect(Int32, GCCollectionMode, Boolean, Boolean) metody .

Ważne

Nie można zagnieżdżać wywołań metody TryStartNoGCRegion i należy wywołać EndNoGCRegion metodę tylko wtedy, gdy środowisko uruchomieniowe nie jest obecnie w trybie opóźnienia regionu GC. Innymi słowy, nie należy wywoływać TryStartNoGCRegion wiele razy (po pierwszym wywołaniu metody kolejne wywołania nie powiedzie się) i nie należy oczekiwać, że wywołania EndNoGCRegion powiedzą się tylko dlatego, że pierwsze wywołanie powiodło się TryStartNoGCRegion .

Tryb opóźnienia regionu GC nie jest zamykany, wywołując metodę EndNoGCRegion .

Zobacz też

Dotyczy

TryStartNoGCRegion(Int64)

Źródło:
GC.CoreCLR.cs
Źródło:
GC.CoreCLR.cs
Źródło:
GC.CoreCLR.cs

Próbuje uniemożliwić odzyskiwanie pamięci podczas wykonywania ścieżki krytycznej, jeśli jest dostępna określona ilość pamięci.

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

Parametry

totalSize
Int64

Ilość pamięci w bajtach do przydzielenia bez wyzwalania odzyskiwania pamięci. Musi być mniejszy lub równy rozmiarowi segmentu efemerycznego. Aby uzyskać informacje na temat rozmiaru segmentu efemerycznego, zobacz sekcję "Efemeryczna generacja i segmenty" w artykule Podstawy odzyskiwania pamięci .

Zwraca

true jeśli środowisko uruchomieniowe mogło zatwierdzić wymaganą ilość pamięci, a moduł odśmiecanie pamięci nie może wprowadzić trybu opóźnienia regionu GC; w przeciwnym razie , false.

Atrybuty

Wyjątki

totalSize przekracza rozmiar segmentu efemerycznego.

Proces nie jest już w trybie opóźnienia regionu GC.

Uwagi

Metoda TryStartNoGCRegion(Int64) próbuje umieścić moduł odśmiecanie pamięci w trybie opóźnienia regionu GC, który nie zezwala na odzyskiwanie pamięci, podczas gdy aplikacja wykonuje krytyczny region kodu. Jeśli środowisko uruchomieniowe nie może początkowo przydzielić żądanej ilości pamięci, moduł odśmiecenia pamięci wykonuje pełne blokowanie odzyskiwania pamięci w celu zwolnienia dodatkowej pamięci. Moduł odśmiecający pamięć nie wprowadza trybu opóźnienia regionu GC, jeśli jest w stanie przydzielić wymaganą ilość pamięci, co w tym przypadku wynosi 2 * totalSize bajty (próbuje przydzielić totalSize bajty dla sterty małego obiektu i totalSize bajtów dla sterty dużego obiektu).

totalSize musi być wystarczająco duża, aby obsługiwać wszystkie alokacje pamięci występujące w ścieżce krytycznej. Obejmuje to alokacje aplikacji, a także alokacje, które środowisko uruchomieniowe wykonuje w imieniu aplikacji.

Ważne

Nie można zagnieżdżać wywołań metody TryStartNoGCRegion i należy wywołać EndNoGCRegion metodę tylko wtedy, gdy środowisko uruchomieniowe nie jest obecnie w trybie opóźnienia regionu GC. Innymi słowy, nie należy wywoływać TryStartNoGCRegion wiele razy (po pierwszym wywołaniu metody kolejne wywołania nie powiedzie się) i nie należy oczekiwać, że wywołania EndNoGCRegion powiedzą się tylko dlatego, że pierwsze wywołanie powiodło się TryStartNoGCRegion .

Tryb opóźnienia regionu GC nie jest zamykany, wywołując metodę EndNoGCRegion .

Zobacz też

Dotyczy