GC.TryStartNoGCRegion Metoda
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
Během provádění kritické cesty se pokusí zakázat uvolňování paměti.
Přetížení
| Name | Description |
|---|---|
| TryStartNoGCRegion(Int64, Int64, Boolean) |
Pokusí se zakázat uvolňování paměti během provádění kritické cesty, pokud je pro haldu velkého objektu a haldy malého objektu k dispozici určité množství paměti, a určuje, zda uvolňování paměti provádí úplné blokování uvolňování paměti, pokud není zpočátku k dispozici dostatek paměti. |
| TryStartNoGCRegion(Int64, Int64) |
Pokusí se zakázat uvolňování paměti během provádění kritické cesty, pokud je pro velkou haldu objektu a haldu malého objektu k dispozici zadané množství paměti. |
| TryStartNoGCRegion(Int64, Boolean) |
Pokusí se zakázat uvolňování paměti během provádění kritické cesty, pokud je k dispozici zadané množství paměti, a určuje, zda uvolňování paměti provádí úplné blokování uvolňování paměti, pokud není zpočátku k dispozici dostatek paměti. |
| TryStartNoGCRegion(Int64) |
Pokusí se zakázat uvolňování paměti během provádění kritické cesty, pokud je k dispozici zadané množství paměti. |
Poznámky
Important
Volání metody TryStartNoGCRegion nelze vnořit a metodu EndNoGCRegion byste měli volat pouze v případě, že modul runtime není aktuálně v režimu latence oblasti GC. Jinými slovy, neměli byste volat TryStartNoGCRegion vícekrát (po prvním volání metody, následná volání nebudou úspěšná) a neměli byste očekávat, že volání budou EndNoGCRegion úspěšná pouze proto, že první volání bylo TryStartNoGCRegion úspěšné.
TryStartNoGCRegion(Int64, Int64, Boolean)
- Zdroj:
- GC.CoreCLR.cs
- Zdroj:
- GC.CoreCLR.cs
- Zdroj:
- GC.CoreCLR.cs
- Zdroj:
- GC.CoreCLR.cs
- Zdroj:
- GC.CoreCLR.cs
Pokusí se zakázat uvolňování paměti během provádění kritické cesty, pokud je pro haldu velkého objektu a haldy malého objektu k dispozici určité množství paměti, a určuje, zda uvolňování paměti provádí úplné blokování uvolňování paměti, pokud není zpočátku k dispozici dostatek paměti.
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
Velikost paměti v bajtech, která se má přidělit bez aktivace uvolňování paměti.
totalSize
-
lohSize musí být menší nebo rovna velikosti dočasného segmentu. Informace o velikosti dočasného segmentu najdete v části "Dočasné generace a segmenty" v článku Základy uvolňování paměti .
- lohSize
- Int64
Počet bajtů, které totalSize se mají použít pro velké přidělení haldy objektů (LOH).
- disallowFullBlockingGC
- Boolean
truevynechat úplné blokování uvolňování paměti, pokud systém uvolňování paměti zpočátku nemůže přidělit zadanou paměť v haldě malého objektu (SOH) a LOH; v opačném případě . false
Návraty
truePokud modul runtime dokázal potvrdit požadované množství paměti a systém uvolňování paměti nemůže vstoupit do režimu latence oblasti uvolňování paměti; v opačném případě . false
- Atributy
Výjimky
totalSize
-
lohSize překračuje velikost dočasného segmentu.
Proces již není v režimu latence oblasti GC.
Poznámky
Metoda TryStartNoGCRegion(Int64, Int64, Boolean) se pokusí umístit systém uvolňování paměti do režimu latence oblasti uvolňování paměti, který zakáže uvolňování paměti, zatímco aplikace spustí kritickou oblast kódu. Pokud modul runtime nemůže na začátku přidělit požadovanou velikost paměti a disallowFullBlockingGC argument je false, systém uvolňování paměti provede úplné blokování uvolňování paměti při pokusu o uvolnění další paměti, jinak přidělení selže a metoda vrátí false. Systém uvolňování paměti nezadá žádný režim latence oblasti uvolňování paměti, pokud je schopen přidělit lohSize pro LOH a totalSize - lohSize pro malou haldu objektu (SOH).
lohSize musí být dostatečně velký pro zpracování všech přidělení paměti, ke kterým dochází v kritické cestě pro LOH, a totalSize - lohSize musí být dostatečně velký pro zpracování všech přidělení paměti, ke kterým dochází v kritické cestě pro SOH. To zahrnuje přidělení aplikací a také přidělení, která modul runtime provádí jménem aplikace.
Nastavení disallowFullBlockingGC , aby true se zabránilo úplnému blokování uvolňování paměti, pokud není zpočátku k dispozici dostatek paměti, je nejužitečnější ve scénářích vyrovnávání zatížení: jeden systém může volat tuto metodu a ohlásit sám sebe jako připravený přijímat požadavky, pokud se vrátí true, a nechat nástroj pro vyrovnávání zatížení přesměrovat požadavky do jiných systémů, pokud se vrátí false. Pak může provést úplné blokování uvolňování paměti, když nesprávní požadavky voláním Collect(Int32, GCCollectionMode, Boolean, Boolean) metody.
Important
Volání metody TryStartNoGCRegion nelze vnořit a metodu EndNoGCRegion byste měli volat pouze v případě, že modul runtime není aktuálně v režimu latence oblasti GC. Jinými slovy, neměli byste volat TryStartNoGCRegion vícekrát (po prvním volání metody, následná volání nebudou úspěšná) a neměli byste očekávat, že volání budou EndNoGCRegion úspěšná pouze proto, že první volání bylo TryStartNoGCRegion úspěšné.
Režim latence oblasti GC ukončíte voláním EndNoGCRegion metody.
Viz také
Platí pro
TryStartNoGCRegion(Int64, Int64)
- Zdroj:
- GC.CoreCLR.cs
- Zdroj:
- GC.CoreCLR.cs
- Zdroj:
- GC.CoreCLR.cs
- Zdroj:
- GC.CoreCLR.cs
- Zdroj:
- GC.CoreCLR.cs
Pokusí se zakázat uvolňování paměti během provádění kritické cesty, pokud je pro velkou haldu objektu a haldu malého objektu k dispozici zadané množství paměti.
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
Velikost paměti v bajtech, která se má přidělit bez aktivace uvolňování paměti.
totalSize
-
lohSize musí být menší nebo rovna velikosti dočasného segmentu. Informace o velikosti dočasného segmentu najdete v části "Dočasné generace a segmenty" v článku Základy uvolňování paměti .
- lohSize
- Int64
Počet bajtů, které totalSize se mají použít pro velké přidělení haldy objektů (LOH).
Návraty
truePokud modul runtime dokázal potvrdit požadované množství paměti a systém uvolňování paměti nemůže vstoupit do režimu latence oblasti uvolňování paměti; v opačném případě . false
- Atributy
Výjimky
totalSize
-
lohSize překračuje velikost dočasného segmentu.
Proces již není v režimu latence oblasti GC.
Poznámky
Metoda TryStartNoGCRegion(Int64, Int64) se pokusí umístit systém uvolňování paměti do režimu latence oblasti uvolňování paměti, který zakáže uvolňování paměti, zatímco aplikace spustí kritickou oblast kódu. Pokud modul runtime nemůže na začátku přidělit požadovanou velikost paměti, systém uvolňování paměti provede úplné blokování uvolňování paměti při pokusu o uvolnění další paměti. Systém uvolňování paměti nezadá žádný režim latence oblasti uvolňování paměti, pokud je schopen přidělit lohSize pro LOH a totalSize - lohSize pro malou haldu objektu (SOH).
lohSize musí být dostatečně velký pro zpracování všech přidělení paměti, ke kterým dochází v kritické cestě pro LOH, a totalSize - lohSize musí být dostatečně velký pro zpracování všech přidělení paměti, ke kterým dochází v kritické cestě pro SOH. To zahrnuje přidělení aplikací a také přidělení, která modul runtime provádí jménem aplikace.
Important
Volání metody TryStartNoGCRegion nelze vnořit a metodu EndNoGCRegion byste měli volat pouze v případě, že modul runtime není aktuálně v režimu latence oblasti GC. Jinými slovy, neměli byste volat TryStartNoGCRegion vícekrát (po prvním volání metody, následná volání nebudou úspěšná) a neměli byste očekávat, že volání budou EndNoGCRegion úspěšná pouze proto, že první volání bylo TryStartNoGCRegion úspěšné.
Režim latence oblasti GC ukončíte voláním EndNoGCRegion metody.
Viz také
Platí pro
TryStartNoGCRegion(Int64, Boolean)
- Zdroj:
- GC.CoreCLR.cs
- Zdroj:
- GC.CoreCLR.cs
- Zdroj:
- GC.CoreCLR.cs
- Zdroj:
- GC.CoreCLR.cs
- Zdroj:
- GC.CoreCLR.cs
Pokusí se zakázat uvolňování paměti během provádění kritické cesty, pokud je k dispozici zadané množství paměti, a určuje, zda uvolňování paměti provádí úplné blokování uvolňování paměti, pokud není zpočátku k dispozici dostatek paměti.
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
Velikost paměti v bajtech, která se má přidělit bez aktivace uvolňování paměti. Musí být menší nebo rovna velikosti dočasného segmentu. Informace o velikosti dočasného segmentu najdete v části "Dočasné generace a segmenty" v článku Základy uvolňování paměti .
- disallowFullBlockingGC
- Boolean
truechcete-li vynechat úplné blokování uvolňování paměti, pokud systém uvolňování paměti zpočátku nemůže přidělit totalSize bajty, jinak . false
Návraty
truePokud modul runtime dokázal potvrdit požadované množství paměti a systém uvolňování paměti nemůže vstoupit do režimu latence oblasti uvolňování paměti; v opačném případě . false
- Atributy
Výjimky
totalSize překračuje velikost dočasného segmentu.
Proces již není v režimu latence oblasti GC.
Poznámky
Metoda TryStartNoGCRegion(Int64, Boolean) se pokusí umístit systém uvolňování paměti do režimu latence oblasti uvolňování paměti, který zakáže uvolňování paměti, zatímco aplikace spustí kritickou oblast kódu. Pokud modul runtime nemůže na začátku přidělit požadovanou velikost paměti a disallowFullBlockingGC argument je false, systém uvolňování paměti provede úplné blokování uvolňování paměti při pokusu o uvolnění další paměti, jinak přidělení selže a metoda vrátí false. Systém uvolňování paměti nezadá režim latence oblasti uvolňování paměti, pokud je schopen přidělit požadované množství paměti, což je v tomto případě ve skutečnosti 2 * totalSize (pokusí se přidělit totalSize pro malou haldu objektu a totalSize pro haldu velkého objektu).
totalSize musí být dostatečně velký pro zpracování všech přidělení paměti, ke kterým dochází v kritické cestě. To zahrnuje přidělení aplikací a také přidělení, která modul runtime provádí jménem aplikace.
Nastavení disallowFullBlockingGC , aby true se zabránilo úplnému blokování uvolňování paměti, pokud není zpočátku k dispozici dostatek paměti, je nejužitečnější ve scénářích vyrovnávání zatížení: jeden systém může volat tuto metodu a ohlásit sám sebe jako připravený přijímat požadavky, pokud se vrátí true, a nechat nástroj pro vyrovnávání zatížení přesměrovat požadavky do jiných systémů, pokud se vrátí false. Pak může provést úplné blokování uvolňování paměti, když nesprávní požadavky voláním Collect(Int32, GCCollectionMode, Boolean, Boolean) metody.
Important
Volání metody TryStartNoGCRegion nelze vnořit a metodu EndNoGCRegion byste měli volat pouze v případě, že modul runtime není aktuálně v režimu latence oblasti GC. Jinými slovy, neměli byste volat TryStartNoGCRegion vícekrát (po prvním volání metody, následná volání nebudou úspěšná) a neměli byste očekávat, že volání budou EndNoGCRegion úspěšná pouze proto, že první volání bylo TryStartNoGCRegion úspěšné.
Režim latence oblasti GC ukončíte voláním EndNoGCRegion metody.
Viz také
Platí pro
TryStartNoGCRegion(Int64)
- Zdroj:
- GC.CoreCLR.cs
- Zdroj:
- GC.CoreCLR.cs
- Zdroj:
- GC.CoreCLR.cs
- Zdroj:
- GC.CoreCLR.cs
- Zdroj:
- GC.CoreCLR.cs
Pokusí se zakázat uvolňování paměti během provádění kritické cesty, pokud je k dispozici zadané množství paměti.
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
Velikost paměti v bajtech, která se má přidělit bez aktivace uvolňování paměti. Musí být menší nebo rovna velikosti dočasného segmentu. Informace o velikosti dočasného segmentu najdete v části "Dočasné generace a segmenty" v článku Základy uvolňování paměti .
Návraty
truePokud modul runtime dokázal potvrdit požadované množství paměti a systém uvolňování paměti nemůže vstoupit do režimu latence oblasti uvolňování paměti; v opačném případě . false
- Atributy
Výjimky
totalSize překračuje velikost dočasného segmentu.
Proces již není v režimu latence oblasti GC.
Poznámky
Metoda TryStartNoGCRegion(Int64) se pokusí umístit systém uvolňování paměti do režimu latence oblasti uvolňování paměti, který zakáže uvolňování paměti, zatímco aplikace spustí kritickou oblast kódu. Pokud modul runtime nemůže na začátku přidělit požadovanou velikost paměti, systém uvolňování paměti provede úplné blokování uvolňování paměti při pokusu o uvolnění další paměti. Systém uvolňování paměti nezadá režim latence oblasti uvolňování paměti, pokud je schopen přidělit požadované množství paměti, což je v tomto případě ve skutečnosti 2 × totalSize bajty (pokusí se přidělit totalSize bajty pro haldu malého objektu a totalSize bajty pro velkou haldu objektu).
totalSize musí být dostatečně velký pro zpracování všech přidělení paměti, ke kterým dochází v kritické cestě. To zahrnuje přidělení aplikací a také přidělení, která modul runtime provádí jménem aplikace.
Important
Volání metody TryStartNoGCRegion nelze vnořit a metodu EndNoGCRegion byste měli volat pouze v případě, že modul runtime není aktuálně v režimu latence oblasti GC. Jinými slovy, neměli byste volat TryStartNoGCRegion vícekrát (po prvním volání metody, následná volání nebudou úspěšná) a neměli byste očekávat, že volání budou EndNoGCRegion úspěšná pouze proto, že první volání bylo TryStartNoGCRegion úspěšné.
Režim latence oblasti GC ukončíte voláním EndNoGCRegion metody.