Sdílet prostřednictvím


GC.TryStartNoGCRegion Metoda

Definice

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

trueChcete-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

truePokud 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

truePokud 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, falsevynecháte úplné blokování uvolňování paměti. V opačném případě .

Návraty

truePokud 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

truePokud 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 .

Viz také

Platí pro