GC.TryStartNoGCRegion Metoda
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
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 false
wartość . 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 true
zwraca 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 false
wartość . 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 true
zwraca 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 .