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í.
Pokusí se zakázat uvolňování paměti během provádění kritické cesty.
Přetížení
TryStartNoGCRegion(Int64, 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 pro haldu velkého objektu a haldu malého objektu, a řídí, zda systém uvolňování paměti provede úplné blokování uvolňování paměti, pokud není dostatek paměti není na začátku k dispozici. |
TryStartNoGCRegion(Int64, Int64) |
Pokusí se zakázat uvolňování paměti během provádění kritické cesty, pokud je pro haldu velkého objektu a haldu malého objektu k dispozici zadaná velikost 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 řídí, zda systém uvolňování paměti provede úplné blokování uvolňování paměti, pokud není na začá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
Důležité
Volání metody nelze vnořit a metodu TryStartNoGCRegionEndNoGCRegion byste měli volat pouze v případě, že modul runtime není aktuálně v režimu latence žádné oblasti uvolňování paměti. Jinými slovy, neměli byste volat TryStartNoGCRegion vícekrát (po prvním volání metody nebudou následná volání úspěšná) a neměli byste očekávat, že EndNoGCRegion volání budou úspěšná jenom 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
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 pro haldu velkého objektu a haldu malého objektu, a řídí, zda systém uvolňování paměti provede úplné blokování uvolňování paměti, pokud není dostatek paměti není na začátku k dispozici.
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 spuštění uvolňování paměti.
totalSize
-
lohSize
musí být menší než 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ů, totalSize
které se mají použít pro přidělení velké haldy objektů (LOH).
- disallowFullBlockingGC
- Boolean
true
Chcete-li vynechat úplné blokování uvolňování paměti, pokud systém uvolňování paměti zpočátku nelze přidělit zadanou paměť na malé haldě objektu (SOH) a LOH; v opačném případě . false
Návraty
true
Pokud modul runtime byl schopen potvrdit požadované množství paměti a systém uvolňování paměti je schopen přejít 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 v žádné oblasti uvolňování paměti.
Poznámky
Metoda se TryStartNoGCRegion(Int64, Int64, Boolean) pokusí umístit systém uvolňování paměti do režimu latence žádné oblasti uvolňování paměti, který zakáže uvolňování paměti, když aplikace spustí kritickou oblast kódu. Pokud modul runtime nemůže na začátku přidělit požadované množství paměti a disallowFullBlockingGC
argument je false
, systém uvolňování paměti provede úplné blokování uvolňování paměti ve snaze uvolnit další paměť; jinak přidělení selže a metoda vrátí false
. Systém uvolňování paměti nepřejde do režimu latence oblasti uvolňování paměti, pokud je schopen přidělit lohSize
pro LOH a totalSize
- lohSize
pro haldu malého objektu (SOH).
lohSize
musí být dostatečně velká, aby zvládla všechna přidělení paměti, ke kterým dochází v kritické cestě pro LOH, a totalSize
- lohSize
musí být dostatečně velká, aby zvládla všechna přidělení paměti, ke kterým dochází v kritické cestě pro SOH. To zahrnuje přidělení aplikací i přidělení, která modul runtime provádí jménem aplikace.
Nastavení disallowFullBlockingGC
na hodnotu , true
aby 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 tuto metodu volat a hlásit sám sebe jako připravený přijímat požadavky, pokud vrátí true
, a nechat nástroj pro vyrovnávání zatížení přesměrovat požadavky do jiných systémů, pokud vrátí false
. Pak může provést úplné blokování uvolňování paměti, když nezvládá požadavky voláním Collect(Int32, GCCollectionMode, Boolean, Boolean) metody .
Důležité
Volání metody nelze vnořit a metodu TryStartNoGCRegionEndNoGCRegion byste měli volat pouze v případě, že modul runtime není aktuálně v režimu latence žádné oblasti uvolňování paměti. Jinými slovy, neměli byste volat TryStartNoGCRegion vícekrát (po prvním volání metody nebudou následná volání úspěšná) a neměli byste očekávat, že EndNoGCRegion volání budou úspěšná jenom proto, že první volání bylo TryStartNoGCRegion úspěšné.
Režim latence oblasti bez uvolňování paměti 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
Pokusí se zakázat uvolňování paměti během provádění kritické cesty, pokud je pro haldu velkého objektu a haldu malého objektu k dispozici zadaná velikost 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 spuštění uvolňování paměti.
totalSize
-
lohSize
musí být menší než 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ů, totalSize
které se mají použít pro přidělení velké haldy objektů (LOH).
Návraty
true
Pokud modul runtime byl schopen potvrdit požadované množství paměti a systém uvolňování paměti je schopen přejít 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 v žádné oblasti uvolňování paměti.
Poznámky
Metoda se TryStartNoGCRegion(Int64, Int64) pokusí umístit systém uvolňování paměti do režimu latence žádné oblasti uvolňování paměti, který zakáže uvolňování paměti, když aplikace spustí kritickou oblast kódu. Pokud modul runtime nemůže na začátku přidělit požadované množství 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 nepřejde do režimu latence oblasti uvolňování paměti, pokud je schopen přidělit lohSize
pro LOH a totalSize
- lohSize
pro haldu malého objektu (SOH).
lohSize
musí být dostatečně velká, aby zvládla všechna přidělení paměti, ke kterým dochází v kritické cestě pro LOH, a totalSize
- lohSize
musí být dostatečně velká, aby zvládla všechna přidělení paměti, ke kterým dochází v kritické cestě pro SOH. To zahrnuje přidělení aplikací i přidělení, která modul runtime provádí jménem aplikace.
Důležité
Volání metody nelze vnořit a metodu TryStartNoGCRegionEndNoGCRegion byste měli volat pouze v případě, že modul runtime není aktuálně v režimu latence žádné oblasti uvolňování paměti. Jinými slovy, neměli byste volat TryStartNoGCRegion vícekrát (po prvním volání metody nebudou následná volání úspěšná) a neměli byste očekávat, že EndNoGCRegion volání budou úspěšná jenom proto, že první volání bylo TryStartNoGCRegion úspěšné.
Režim latence oblasti bez uvolňování paměti 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
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 řídí, zda systém uvolňování paměti provede úplné blokování uvolňování paměti, pokud není na začá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 spuštění uvolňování paměti. Musí být menší než 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
true
Pokud systém uvolňování paměti zpočátku nemůže přidělit totalSize
bajty, false
vynecháte úplné blokování uvolňování paměti. V opačném případě .
Návraty
true
Pokud modul runtime byl schopen potvrdit požadované množství paměti a systém uvolňování paměti je schopen přejít 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 v žádné oblasti uvolňování paměti.
Poznámky
Metoda se TryStartNoGCRegion(Int64, Boolean) pokusí umístit systém uvolňování paměti do režimu latence žádné oblasti uvolňování paměti, který zakáže uvolňování paměti, když aplikace spustí kritickou oblast kódu. Pokud modul runtime nemůže na začátku přidělit požadované množství paměti a disallowFullBlockingGC
argument je false
, systém uvolňování paměti provede úplné blokování uvolňování paměti ve snaze uvolnit další paměť; jinak přidělení selže a metoda vrátí false
. Systém uvolňování paměti nepřejde do režimu 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
haldě malého objektu a totalSize
haldě velkého objektu).
totalSize
musí být dostatečně velký, aby bylo možné zpracovat všechna přidělení paměti, ke kterým dochází v kritické cestě. To zahrnuje přidělení aplikací i přidělení, která modul runtime provádí jménem aplikace.
Nastavení disallowFullBlockingGC
na hodnotu , true
aby 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 tuto metodu volat a hlásit sám sebe jako připravený přijímat požadavky, pokud vrátí true
, a nechat nástroj pro vyrovnávání zatížení přesměrovat požadavky do jiných systémů, pokud vrátí false
. Pak může provést úplné blokování uvolňování paměti, když nezvládá požadavky voláním Collect(Int32, GCCollectionMode, Boolean, Boolean) metody .
Důležité
Volání metody nelze vnořit a metodu TryStartNoGCRegionEndNoGCRegion byste měli volat pouze v případě, že modul runtime není aktuálně v režimu latence žádné oblasti uvolňování paměti. Jinými slovy, neměli byste volat TryStartNoGCRegion vícekrát (po prvním volání metody nebudou následná volání úspěšná) a neměli byste očekávat, že EndNoGCRegion volání budou úspěšná jenom proto, že první volání bylo TryStartNoGCRegion úspěšné.
Režim latence oblasti bez uvolňování paměti 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
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 spuštění uvolňování paměti. Musí být menší než 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
true
Pokud modul runtime byl schopen potvrdit požadované množství paměti a systém uvolňování paměti je schopen přejít 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 v žádné oblasti uvolňování paměti.
Poznámky
Metoda se TryStartNoGCRegion(Int64) pokusí umístit systém uvolňování paměti do režimu latence žádné oblasti uvolňování paměti, který zakáže uvolňování paměti, když aplikace spustí kritickou oblast kódu. Pokud modul runtime nemůže na začátku přidělit požadované množství 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 nepřejde do režimu 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 haldu velkého objektu).
totalSize
musí být dostatečně velký, aby bylo možné zpracovat všechna přidělení paměti, ke kterým dochází v kritické cestě. To zahrnuje přidělení aplikací i přidělení, která modul runtime provádí jménem aplikace.
Důležité
Volání metody nelze vnořit a metodu TryStartNoGCRegionEndNoGCRegion byste měli volat pouze v případě, že modul runtime není aktuálně v režimu latence žádné oblasti uvolňování paměti. Jinými slovy, neměli byste volat TryStartNoGCRegion vícekrát (po prvním volání metody nebudou následná volání úspěšná) a neměli byste očekávat, že EndNoGCRegion volání budou úspěšná jenom proto, že první volání bylo TryStartNoGCRegion úspěšné.
Režim latence oblasti bez uvolňování paměti ukončíte voláním EndNoGCRegion metody .