GC.TryStartNoGCRegion Metoda

Definice

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.

Viz také

Platí pro