Megosztás a következőn keresztül:


Teljesítményszámlálók a .NET-keretrendszerben

Ez a cikk a Windows Teljesítményfigyelőben található teljesítményszámlálók listáját tartalmazza.

Kivételteljesítmény-számlálók

A .NET CLR Exceptions kategória olyan számlálókat tartalmaz, amelyek információt nyújtanak az alkalmazás által kidobott kivételekről. Az alábbi táblázat ezeket a teljesítményszámlálókat ismerteti.

Teljesítményszámláló Leírás
Az Exceps Thrown száma Megjeleníti az alkalmazás elindítása óta kidobott kivételek teljes számát. Ide tartoznak a .NET-kivételek és a .NET-kivételekké konvertált nem felügyelt kivételek is. A nem felügyelt kódból visszaadott HRESULT például kivételként lesz konvertálva a felügyelt kódban.

Ez a számláló a kezelt és a kezeletlen kivételeket is tartalmazza. A rendszer újraszámozza a kivételeket.
# Exceps Thrown / Sec Megjeleníti a másodpercenként kidobott kivételek számát. Ide tartoznak a .NET-kivételek és a .NET-kivételekké konvertált nem felügyelt kivételek is. A nem felügyelt kódból visszaadott HRESULT például kivételként lesz konvertálva a felügyelt kódban.

Ez a számláló a kezelt és a kezeletlen kivételeket is tartalmazza. Ez nem egy átlagos idő; megjeleníti az utolsó két mintában megfigyelt értékek közötti különbséget a mintaintervallum időtartamával osztva. Ez a számláló a lehetséges teljesítményproblémák jelzése, ha nagy számú kivételt (>100s) dobnak ki.
Szűrők száma /mp A másodpercenként végrehajtott .NET-kivételszűrők számát jeleníti meg. A kivételszűrők attól függetlenül kiértékelik, hogy a rendszer kezeli-e a kivételt.

Ez a számláló nem időátlag; megjeleníti az utolsó két mintában megfigyelt értékek közötti különbséget a mintaintervallum időtartamával osztva.
#of Finallys / Sec Megjeleníti a másodpercenként végrehajtott utolsó blokkok számát. A végső blokk végrehajtása garantált, függetlenül attól, hogy a próbablokk ki lett-e lépve. A rendszer csak a kivételhez végrehajtott utolsó blokkokat számlálja meg; végül a normál kódútvonalak blokkjait ez a számláló nem számítja meg.

Ez a számláló nem időátlag; megjeleníti az utolsó két mintában megfigyelt értékek közötti különbséget a mintaintervallum időtartamával osztva.
Dobás a fogás mélységéhez / másodperc Megjeleníti a bejárt veremkeretek számát azon keretből, amely a kivételt a kivételt kezelő keretre dobta másodpercenként. Ez a számláló nullára állítja vissza a kivételkezelő megadásakor, így a beágyazott kivételek a kezelő–kezelő verem mélységét jelenítik meg.

Ez a számláló nem időátlag; megjeleníti az utolsó két mintában megfigyelt értékek közötti különbséget a mintaintervallum időtartamával osztva.

Teljesítményszámlálók közötti kapcsolat

A .NET CLR Interop kategória olyan számlálókat tartalmaz, amelyek információt nyújtanak az alkalmazásnak a COM-összetevőkkel, a COM+ szolgáltatásokkal és a külső típusú kódtárakkal való interakciójáról. Az alábbi táblázat ezeket a teljesítményszámlálókat ismerteti.

Teljesítményszámláló Leírás
CCW-k száma Megjeleníti a COM hívható burkolóinak (CCW-k) aktuális számát. A CCW egy proxy egy felügyelt objektumhoz, amely nem felügyelt COM-ügyfélről hivatkozik. Ez a számláló a nem felügyelt COM-kód által hivatkozott felügyelt objektumok számát jelzi.
A rendezés száma Megjeleníti, hogy az argumentumok és a visszatérési értékek összesen hány alkalommal lettek rendezve a felügyelt kódból a nem felügyelt kódba, és fordítva, az alkalmazás elindítása óta. Ez a számláló nem növekszik, ha a csonkok beágyazottak. (A csonkok felelősek az argumentumok és a visszatérési értékek rendezéséért). A csonkok általában beágyazottak, ha a rendezési többletterhelés kicsi.
Csonkok száma A közös nyelvi futtatókörnyezet által létrehozott csonkok aktuális számát jeleníti meg. A csonkok felelősek az argumentumok rendezéséért, és a felügyelt kódból a nem felügyelt kódba visszaadott értékeket, és fordítva, com-interop hívás vagy platformhívás során.
TLB-exportálások száma másodpercenként Jövőbeli használatra fenntartva.
TLB-importok száma másodpercenként Jövőbeli használatra fenntartva.

JIT teljesítményszámlálók

A .NET CLR JIT kategória olyan számlálókat tartalmaz, amelyek információt nyújtanak a JIT által lefordított kódról. Az alábbi táblázat ezeket a teljesítményszámlálókat ismerteti.

Teljesítményszámláló Leírás
A JITted IL bájtjainak száma Megjeleníti a just-in-time (JIT) fordító által az alkalmazás elindítása óta lefordított közös köztes nyelv (CIL) bájtjainak teljes számát. Ez a számláló egyenértékű az IL bájtok jitted számlálójának teljes számával .
A JITted metódusok száma Megjeleníti a JIT által az alkalmazás elindítása óta lefordított metódusok teljes számát. Ez a számláló nem tartalmaz jit előtti fordítású metódusokat.
%time in Jit Megjeleníti a JIT-fordításban az utolsó JIT-fordítási fázis óta eltelt idő százalékos arányát. Ez a számláló minden JIT-fordítási fázis végén frissül. A JIT fordítási fázisa akkor következik be, ha egy metódus és annak függőségei lefordítva vannak.
IL bájtok jitted / mp Megjeleníti a JIT által másodpercenként lefordított CIL bájtok számát. Ez a számláló nem időátlag; megjeleníti az utolsó két mintában megfigyelt értékek közötti különbséget a mintaintervallum időtartamával osztva.
Standard Jit-hibák Megjeleníti a JIT-fordító által az alkalmazás elindítása óta nem lefordított metódusok maximális számát. Ez a hiba akkor fordulhat elő, ha a CIL nem ellenőrizhető, vagy ha belső hiba van a JIT-fordítóban.
Jitted IL bájtok teljes száma Megjeleníti az alkalmazás elindítása óta lefordított JIT-bájtok teljes CIL-bájtszámát. Ez a számláló egyenértékű az IL bájtok jitted számlálójának számával .

Teljesítményszámlálók betöltése

A .NET CLR-betöltési kategória olyan számlálókat tartalmaz, amelyek információt nyújtanak a betöltött szerelvényekről, osztályokról és alkalmazástartományokról. Az alábbi táblázat ezeket a teljesítményszámlálókat ismerteti.

Teljesítményszámláló Leírás
% időbetöltés Jövőbeli használatra fenntartva.
Szerelvény keresési hossza Jövőbeli használatra fenntartva.
Bájtok a Loader-halomban Az osztálybetöltő által az összes alkalmazástartományban lekötött memória aktuális méretét jeleníti meg bájtban. A véglegesített memória a lemez lapozófájljában foglalt fizikai hely.
Aktuális alkalmazástartományok Az alkalmazásba betöltött alkalmazástartományok aktuális számát jeleníti meg.
Aktuális szerelvények Megjeleníti a jelenleg futó alkalmazás összes alkalmazástartományában betöltött szerelvények aktuális számát. Ha a szerelvény tartománysemlegesként van betöltve több alkalmazástartományból, a számláló csak egyszer növekszik.
Aktuális betöltődő osztályok Az összes szerelvénybe betöltött osztályok aktuális számát jeleníti meg.
Az alkalmazástartományok aránya Megjeleníti a másodpercenként betöltött alkalmazástartományok számát. Ez a számláló nem időátlag; megjeleníti az utolsó két mintában megfigyelt értékek közötti különbséget a mintaintervallum időtartamával osztva.
A kiürített appdomainek aránya Megjeleníti a másodpercenként kiürített alkalmazástartományok számát. Ez a számláló nem időátlag; megjeleníti az utolsó két mintában megfigyelt értékek közötti különbséget a mintaintervallum időtartamával osztva.
Szerelvények aránya Megjeleníti az összes alkalmazástartományban másodpercenként betöltött szerelvények számát. Ha a szerelvény tartománysemlegesként van betöltve több alkalmazástartományból, a számláló csak egyszer növekszik.

Ez a számláló nem időátlag; megjeleníti az utolsó két mintában megfigyelt értékek közötti különbséget a mintaintervallum időtartamával osztva.
Betöltött osztályok aránya Megjeleníti a másodpercenként betöltött osztályok számát az összes szerelvényben. Ez a számláló nem időátlag; megjeleníti az utolsó két mintában megfigyelt értékek közötti különbséget a mintaintervallum időtartamával osztva.
A terhelési hibák aránya Megjeleníti azoknak az osztályoknak a számát, amelyek másodpercenként nem tölthetők be. Ez a számláló nem időátlag; megjeleníti az utolsó két mintában megfigyelt értékek közötti különbséget a mintaintervallum időtartamával osztva.

A betöltési hibák számos okból jelentkezhetnek, például a nem megfelelő biztonság vagy az érvénytelen formátum miatt. További részletekért tekintse meg a profilkészítési szolgáltatások súgóját.
Terhelési hibák teljes száma Azoknak az osztályoknak a maximális számát jeleníti meg, amelyek az alkalmazás elindítása óta nem tölthetők be.

A betöltési hibák számos okból jelentkezhetnek, például a nem megfelelő biztonság vagy az érvénytelen formátum miatt. További részletekért tekintse meg a profilkészítési szolgáltatások súgóját.
Összes alkalmazástartomány Megjeleníti az alkalmazás indítása óta betöltött alkalmazástartományok maximális számát.
Összes alkalmazástartomány kiürítve Megjeleníti az alkalmazás indítása óta kiürített alkalmazástartományok teljes számát. Ha egy alkalmazástartomány többször van betöltve és kiürítve, ez a számláló minden alkalommal növekszik, amikor az alkalmazástartományt kiürítik.
Összes szerelvények Megjeleníti az alkalmazás elindítása óta betöltött szerelvények teljes számát. Ha a szerelvény tartománysemlegesként van betöltve több alkalmazástartományból, a számláló csak egyszer növekszik.
Összes betöltött osztály Az alkalmazás elindítása óta az összes szerelvénybe betöltött osztályok összesített számát jeleníti meg.

Zárolási és szálteljesítmény-számlálók

A .NET CLR LocksAndThreads kategória olyan számlálókat tartalmaz, amelyek információt nyújtanak az alkalmazás által használt felügyelt zárolásokról és szálakról. Az alábbi táblázat ezeket a teljesítményszámlálókat ismerteti.

Teljesítményszámláló Leírás
Az aktuális logikai szálak száma Megjeleníti az alkalmazás aktuális felügyelt szálobjektumainak számát. Ez a számláló fenntartja a futó és a leállított szálak számát is. Ez a számláló nem időátlag; csak az utolsó megfigyelt értéket jeleníti meg.
Az aktuális fizikai szálak száma Megjeleníti a közös nyelvi futtatókörnyezet által létrehozott és birtokolt natív operációsrendszer-szálak számát, amelyek a felügyelt szálobjektumok mögöttes szálaiként működnek. A számláló értéke nem tartalmazza a futtatókörnyezet által a belső műveletekben használt szálakat; ez az operációs rendszer folyamatának szálainak egy részhalmaza.
Az aktuálisan felismert szálak száma Megjeleníti a futtatókörnyezet által jelenleg felismert szálak számát. Ezek a szálak egy megfelelő felügyelt szálobjektumhoz vannak társítva. A futtatókörnyezet nem hozza létre ezeket a szálakat, de legalább egyszer futnak a futtatókörnyezetben.

Csak egyedi szálak vannak nyomon követve; olyan szálak, amelyek ugyanazzal a szálazonosítóval vannak elosztva, amelyek újra megismétlik a futtatókörnyezetet, vagy a szál kilépése után újra létre lettek hozva.
Az összes felismert szál száma Megjeleníti az alkalmazás elindítása óta a futtatókörnyezet által felismert szálak teljes számát. Ezek a szálak egy megfelelő felügyelt szálobjektumhoz vannak társítva. A futtatókörnyezet nem hozza létre ezeket a szálakat, de legalább egyszer futnak a futtatókörnyezetben.

Csak egyedi szálak vannak nyomon követve; olyan szálak, amelyek ugyanazzal a szálazonosítóval vannak elosztva, amelyek újra megismétlik a futtatókörnyezetet, vagy a szál kilépése után újra létre lettek hozva.
Versengési arány / mp Megjeleníti, hogy a futtatókörnyezetben a szálak milyen sebességgel próbálják meg sikertelenül beszerezni a felügyelt zárolást.
Aktuális üzenetsor hossza Megjeleníti azoknak a szálaknak a teljes számát, amelyek jelenleg arra várnak, hogy felügyelt zárolást szerezzenek be az alkalmazásban. Ez a számláló nem időátlag; az utolsó megfigyelt értéket jeleníti meg.
Üzenetsor hossza másodpercenként Megjeleníti azoknak a szálaknak a számát másodpercenként, amelyek arra várnak, hogy zárolást szerezzenek be az alkalmazásban. Ez a számláló nem időátlag; megjeleníti az utolsó két mintában megfigyelt értékek közötti különbséget a mintaintervallum időtartamával osztva.
Üzenetsor hossza – csúcs Megjeleníti azoknak a szálaknak a teljes számát, amelyek a felügyelt zárolás beszerzésére vártak az alkalmazás elindítása óta.
felismert szálak száma másodpercenként Megjeleníti a futtatókörnyezet által felismert szálak másodpercenkénti számát. Ezek a szálak egy megfelelő felügyelt szálobjektumhoz vannak társítva. A futtatókörnyezet nem hozza létre ezeket a szálakat, de legalább egyszer futnak a futtatókörnyezetben.

Csak egyedi szálak vannak nyomon követve; olyan szálak, amelyek ugyanazzal a szálazonosítóval vannak elosztva, amelyek újra megismétlik a futtatókörnyezetet, vagy a szál kilépése után újra létre lettek hozva.

Ez a számláló nem időátlag; megjeleníti az utolsó két mintában megfigyelt értékek közötti különbséget a mintaintervallum időtartamával osztva.
A versengések teljes száma Azon alkalmak teljes számát jeleníti meg, amikor a futtatókörnyezetben lévő szálak sikertelenül próbálták megszerezni a felügyelt zárolást.

Memóriateljesítmény-számlálók

A .NET CLR memóriakategória olyan számlálókat tartalmaz, amelyek információt nyújtanak a szemétgyűjtőről. Az alábbi táblázat ezeket a teljesítményszámlálókat ismerteti.

Teljesítményszámláló Leírás
# Bájtok az összes halomban Megjeleníti a Gen 1 halomméret, a Gen 2 halomméret és a Nagy objektum halomméret számlálóinak összegét. Ez a számláló a szemétgyűjtési halomtárakban bájtban lefoglalt aktuális memóriát jelzi.
# GC-leírók A használatban lévő szemétgyűjtési leírók aktuális számát jeleníti meg. A szemétgyűjtési leírók a közös nyelvi futtatókörnyezeten és a felügyelt környezeten kívüli erőforrásokhoz tartoznak.
# Gen 0 gyűjtemények Megjeleníti, hogy a 0. generációs objektumok (vagyis a legfiatalabb, legutóbb lefoglalt objektumok) hányszor gyűjtenek szemétet az alkalmazás elindítása óta.

A 0. generációs szemétgyűjtés akkor fordul elő, ha a 0. generációs rendelkezésre álló memória nem elegendő egy foglalási kérés teljesítéséhez. Ez a számláló a 0. generációs szemétgyűjtés végén növekszik. A magasabb generációs szemétgyűjtések az összes alacsonyabb generációs gyűjteményt tartalmazzák. Ez a számláló explicit módon növekszik, ha egy magasabb generációs (1. vagy 2. generációs) szemétgyűjtés történik.

Ez a számláló az utolsó megfigyelt értéket jeleníti meg. A _Global_ számláló értéke nem pontos, ezért figyelmen kívül kell hagyni.
# Gen 1 gyűjtemények Megjeleníti, hogy az 1. generációs objektumok hányszor gyűjtenek szemetet az alkalmazás elindítása óta.

A számláló az 1. generációs szemétgyűjtés végén növekszik. A magasabb generációs szemétgyűjtések az összes alacsonyabb generációs gyűjteményt tartalmazzák. Ez a számláló explicit módon növekszik, ha egy magasabb generációs (2. generációs) szemétgyűjtés történik.

Ez a számláló az utolsó megfigyelt értéket jeleníti meg. A _Global_ számláló értéke nem pontos, ezért figyelmen kívül kell hagyni.
# Gen 2 gyűjtemények Megjeleníti, hogy a 2. generációs objektumok hányszor gyűjtenek szemetet az alkalmazás elindítása óta. A számláló a 2. generációs szemétgyűjtés (más néven teljes szemétgyűjtés) végén növekszik.

Ez a számláló az utolsó megfigyelt értéket jeleníti meg. A _Global_ számláló értéke nem pontos, ezért figyelmen kívül kell hagyni.
# Indukált GC Megjeleníti, hogy hány alkalommal történt szemétgyűjtés egy explicit hívás GC.Collectmiatt. Jó gyakorlat, hogy a szemétgyűjtő hangolja a gyűjtemények gyakoriságát.
Rögzített objektumok száma Megjeleníti az utolsó szemétgyűjtés során észlelt rögzített objektumok számát. A rögzített objektumok olyan objektumok, amelyeket a szemétgyűjtő nem tud mozgatni a memóriában. Ez a számláló csak a gyűjtött szemét halomban követi nyomon a rögzített objektumokat. A 0. generációs szemétgyűjtés például a rögzített objektumok számbavételét csak a 0. generációs halomban okozza.
Használatban lévő fogadóblokkok száma A használatban lévő szinkronizálási blokkok aktuális számát jeleníti meg. A szinkronizálási blokkok objektumonkénti adatstruktúrák, amelyek a szinkronizálási információk tárolására vannak lefoglalva. Gyenge hivatkozásokat tartalmaznak a felügyelt objektumokra, és a szemétgyűjtőnek kell beolvasnia őket. A szinkronizálási blokkok nem korlátozódnak a szinkronizálási információk tárolására; com interop metaadatokat is tárolhatnak. Ez a számláló a szinkronizálási primitívek nagy mértékű használatával kapcsolatos teljesítményproblémákat jelzi.
# Véglegesített bájtok száma Megjeleníti a szemétgyűjtő által jelenleg lekötött virtuális memória bájtban megadott mennyiségét. A véglegesített memória az a fizikai memória, amelynek a lemez lapozófájljában helyet foglalt.
# Fenntartott bájtok összesen Megjeleníti a virtuális memória bájtban megadott mennyiségét, amelyet jelenleg a szemétgyűjtő tart fenn. A fenntartott memória az alkalmazás számára fenntartott virtuális memóriaterület, ha nincs használatban lemez vagy fő memórialap.
%time in GC Megjeleníti a legutóbbi szemétgyűjtési ciklus óta a szemétgyűjtés végrehajtásával töltött eltelt idő százalékos arányát. Ez a számláló általában a szemétgyűjtő által az alkalmazás nevében gyűjtött és tömörített memóriát jelzi. Ez a számláló csak az összes szemétgyűjtés végén frissül. Ez a számláló nem átlag; értéke az utolsó megfigyelt értéket tükrözi.
Lefoglalt bájt/másodperc Megjeleníti a szemétgyűjtési halomra lefoglalt másodpercenkénti bájtok számát. Ez a számláló minden szemétgyűjtés végén frissül, nem minden foglalásnál. Ez a számláló nem időátlag; megjeleníti az utolsó két mintában megfigyelt értékek közötti különbséget a mintaintervallum időtartamával osztva.
Véglegesítési túlélők Megjeleníti azoknak a szemétgyűjtő objektumoknak a számát, amelyek túlélik a gyűjteményt, mert a véglegesítésre várnak. Ha ezek az objektumok más objektumokra mutató hivatkozásokat tartalmaznak, ezek az objektumok is megmaradnak, de a számláló nem számolja őket. A Gen 0-számláló előléptetett véglegesítési memóriája az összes olyan memóriát jelöli, amely a véglegesítés miatt megmaradt.

Ez a számláló nem halmozott; minden szemétgyűjtés végén frissül, csak az adott gyűjtés során a túlélők számával. Ez a számláló azt a többletterhelést jelzi, amelyet az alkalmazás a véglegesítés miatt jelenthet.
Gen 0 halomméret Megjeleníti a 0. generációban lefoglalható maximális bájtokat; nem jelzi a 0. generációban lefoglalt bájtok aktuális számát.

A 0. generációs szemétgyűjtés akkor történik, ha az utolsó gyűjtemény óta eltelt foglalások túllépik ezt a méretet. A 0. generációs méretet a szemétgyűjtő hangolja, és az alkalmazás végrehajtása során változhat. A 0. generációs gyűjtemény végén a 0. generációs halom mérete 0 bájt. Ez a számláló bájtban jeleníti meg a következő generációs szemétgyűjtést meghívó foglalások méretét bájtban.

Ez a számláló a szemétgyűjtés végén frissül, nem minden foglalásnál.
Gen 0 Előléptetett bájt/mp Megjeleníti a 0. generációtól az 1. generációig előléptetett másodpercenkénti bájtokat. A memória akkor lesz előléptetve, ha túlél egy szemétgyűjtést. Ez a számláló viszonylag hosszú élettartamú objektumok másodpercenkénti létrehozását jelzi.

Ez a számláló az utolsó két mintában megfigyelt értékek közötti különbséget jeleníti meg a mintaintervallum időtartamával osztva.
Gen 1 halomméret Az 1. generációs bájtok aktuális számát jeleníti meg; ez a számláló nem jeleníti meg az 1. generációs maximális méretet. Az objektumok nincsenek közvetlenül lefoglalva ebben a generációban; az előző 0. generációs szemétgyűjtésből előléptetik őket. Ez a számláló a szemétgyűjtés végén frissül, nem minden foglalásnál.
Gen 1 előléptetett bájt/mp Megjeleníti az 1. generációtól a 2. generációig előléptetett másodpercenkénti bájtokat. A számláló nem tartalmazza azokat az objektumokat, amelyeket csak azért előléptetnek, mert véglegesítésre várnak.

A memória akkor lesz előléptetve, ha túlél egy szemétgyűjtést. A 2. generációból semmit sem előléptetnek, mert ez a legrégebbi generáció. Ez a számláló azt jelzi, hogy nagyon hosszú élettartamú objektumok jönnek létre másodpercenként.

Ez a számláló az utolsó két mintában megfigyelt értékek közötti különbséget jeleníti meg a mintaintervallum időtartamával osztva.
Gen 2 halomméret A 2. generációs bájtok aktuális számát jeleníti meg. Az objektumok nincsenek közvetlenül lefoglalva ebben a generációban; az 1. generációs hulladékgyűjtés során előléptetik őket. Ez a számláló a szemétgyűjtés végén frissül, nem minden foglalásnál.
Nagyméretű objektum halommérete Megjeleníti a nagy méretű objektum halom aktuális méretét bájtban. A körülbelül 85 000 bájtnál nagyobb objektumokat a szemétgyűjtő nagy objektumként kezeli, és közvetlenül egy speciális halomba foglalja. Nem léptetik elő őket a generációk. Ez a számláló a szemétgyűjtés végén frissül, nem minden foglalásnál.
Folyamatazonosító Megjeleníti a figyelt CLR-folyamatpéldány folyamatazonosítóját.
Előléptetett véglegesítés-memória gen 0 A 0. generációtól az 1. generációig előléptetett memória bájtjainak megjelenítése csak azért, mert a véglegesítésre várnak. Ez a számláló nem halmozott; az utolsó szemétgyűjtés végén megfigyelt értéket jeleníti meg.
Előléptetett memória a Gen 0-tól Megjeleníti a szemétgyűjtést túlélő és a 0. generációtól az 1. generációig előléptetett memória bájtját. A számláló nem tartalmazza azokat az objektumokat, amelyeket csak azért előléptetnek, mert véglegesítésre várnak. Ez a számláló nem halmozott; az utolsó szemétgyűjtés végén megfigyelt értéket jeleníti meg.
Előléptetett memória az 1. generációstól Megjeleníti a szemétgyűjtést túlélő és az 1. generációtól a 2. generációig előléptetett memória bájtját. A számláló nem tartalmazza azokat az objektumokat, amelyeket csak azért előléptetnek, mert véglegesítésre várnak. Ez a számláló nem halmozott; az utolsó szemétgyűjtés végén megfigyelt értéket jeleníti meg. Ez a számláló 0-ra lesz visszaállítva, ha az utolsó szemétgyűjtés csak a 0. generációs gyűjtemény volt.

Hálózati teljesítményszámlálók

A .NET CLR Hálózatkezelés kategóriája olyan számlálókat tartalmaz, amelyek információt nyújtanak az alkalmazás által a hálózaton keresztül küldött és kapott adatokról. Az alábbi táblázat ezeket a teljesítményszámlálókat ismerteti.

Teljesítményszámláló Leírás
Fogadott bájtok A folyamat elindítása óta az összes Socket objektum által fogadott bájtok AppDomain összesített száma. Ez a szám tartalmazza a TCP/IP által nem definiált adatokat és protokolladatokat.
Elküldött bájtok A folyamat elindítása óta az összes Socket objektum által küldött bájtok AppDomain összesített száma. Ez a szám tartalmazza a TCP/IP által nem definiált adatokat és protokolladatokat.
létrehozott Csatlakozás ions A folyamat elindítása óta valaha csatlakoztatott AppDomain streamcsatornák objektumainak Socket összesített teljes száma.
Fogadott datagramok A folyamat elindítása óta az összes Socket objektum AppDomain által fogadott datagram-csomagok összesített teljes száma.
Elküldött datagramok A folyamat kezdete óta az összes Socket objektum AppDomain által küldött datagram-csomagok összesített száma.
HttpWebRequests Átlagos élettartam A folyamat elindítása óta az utolsó intervallumban végződő összes HttpWebRequest objektum befejezési AppDomain átlagos ideje.
HttpWebRequests – Várólista átlagos időtartama Az összes olyan objektum átlagos várakozási HttpWebRequest ideje, amely a folyamat elindítása óta eltelt utolsó intervallumban hagyta el az AppDomain üzenetsort.
HttpWebRequests létrehozva/mp A másodpercenként létrehozott objektumok száma HttpWebRequest a AppDomain.
HttpWebRequests Queued/sec Az üzenetsorhoz másodpercenként hozzáadott objektumok száma HttpWebRequest a AppDomainkövetkezőn belül: .
HttpWebRequests megszakítva/mp Azon objektumok száma HttpWebRequest , ahol az alkalmazás másodpercenként meghívta a Abort metódust a AppDomain.
HttpWebRequests Failed/sec Azon objektumok száma HttpWebRequest , amelyek másodpercenként kaptak sikertelen állapotkódot a kiszolgálótól a AppDomainkiszolgálón belül.

A hálózati teljesítményszámlálók több osztálya támogatott:

  • Eseményszámlálók, amelyek azt mérik, hogy egy esemény hányszor fordult elő.
  • Az elküldött vagy fogadott adatok mennyiségét mérő adatszámlálók.
  • Időtartamszámlálók, amelyek a különböző folyamatok időtartamát mérik. Az időértékeket az egyes intervallumokon (általában másodpercekben) mérik, miután különböző állapotból származnak.
  • Intervallumonkénti számlálók, amelyek intervallumonként (általában másodpercenként) mérik az adott áttűnést okozó objektumok számát.

Az események hálózati teljesítményszámlálói a következők:

  • létrehozott Csatlakozás ions
  • Fogadott datagramok
  • Elküldött datagramok

Ezek a teljesítményszámlálók a folyamat elindítása óta számolnak. A létrehozott kapcsolatok száma Socket magában foglalja az alkalmazások által létrehozott explicit Socket metódushívásokat egy streamcsatorna-kapcsolathoz, valamint a más osztályok (HttpWebRequest, FtpWebRequest, , WebClientés TcpClientpéldául) által az osztályba Socket irányuló belső hívásokat.

A Datagrams Received és a Datagrams Sent száma magában foglalja az alkalmazás által explicit Socket metódushívásokkal küldött vagy fogadott Datagram-csomagokat, valamint a más osztályok (UdpClientpéldául) Socketáltal kezdeményezett belső hívásokat. Osztály. A fogadott és a datagramok által küldött datagramok száma is felhasználható a datagramok használatával küldött vagy fogadott bájtok számának nagyon durva mérésére egy datagram átlagos méretének feltételezésével.

Az adatok hálózati teljesítményszámlálói a következők:

  • Fogadott bájtok
  • Elküldött bájtok

A fenti számlálók a folyamat elindítása óta bájtok számát adják meg.

Két időtartamszámláló méri, hogy mennyi ideig tartott HttpWebRequest , amíg az objektumok áthaladnak a teljes életciklusukon, vagy csak egy részen:

  • HttpWebRequests Átlagos élettartam
  • HttpWebRequests – Várólista átlagos időtartama

A HttpWebRequests Átlagos élettartam számláló esetében a legtöbb HttpWebRequest objektum élettartama mindig azzal az időponttal kezdődik, amikor az objektum létrejön addig, amíg az alkalmazás bezárja a válaszstreamet. Két nem gyakori eset van:

  • Ha az alkalmazás soha nem hívja meg a GetResponse metódusokat, BeginGetResponse a rendszer figyelmen kívül hagyja az HttpWebRequest objektum élettartamát.

  • Ha az HttpWebRequest objektum a metódusok vagy EndGetResponse metódusok GetResponseWebException meghívásakor ad egy hibát, az élettartam a kivétel eldobásakor ér véget. Technikailag az alapul szolgáló válaszfolyam ezen a ponton is bezárul (a felhasználónak visszaadott válaszfolyam valójában egy memóriastream, amely a válaszfolyam egy példányát tartalmazza).

Négy számláló van, amelyek intervallumonként nyomon követnek bizonyos HttpWebRequest objektumproblémákat. Ezek a teljesítményszámlálók segíthetnek az alkalmazásfejlesztőknek, a rendszergazdáknak és a támogatási személyzetnek jobban megérteni az HttpWebRequest objektumok működését. A számlálók a következőket tartalmazzák:

  • HttpWebRequests létrehozva/mp
  • HttpWebRequests Queued/sec
  • HttpWebRequests megszakítva/mp
  • HttpWebRequests Failed/sec

A HttpWebRequests megszakított/másodperc számláló esetében a belső hívások Abort is beleszámítanak. Ezeket a belső hívásokat általában az alkalmazások által mérni kívánt időtúllépések okozzák.

A HttpWebRequests Failed/sec számláló azon objektumok számát HttpWebRequest tartalmazza, amelyek másodpercenként sikertelen állapotkódot kaptak a kiszolgálótól. Ez azt jelenti, hogy a http-kiszolgálótól a kérelem végén kapott állapotkód nem volt a 200 és 299 közötti tartományban. A kezelt és új kérést eredményező állapotkódok (például a 401 Jogosulatlan állapotkódok nagy része) az újrapróbálkozás eredménye alapján meghiúsul vagy nem hiúsul meg. Ha az alkalmazás hibát látna az újrapróbálkozás alapján, akkor a számláló növekszik.

A hálózatkezelési teljesítményszámlálók a névtérben lévő System.Diagnostics és kapcsolódó PerformanceCounter osztályok használatával érhetők el és kezelhetők. A hálózati teljesítményszámlálók a Windows Teljesítményfigyelő konzollal is megtekinthetők.

A használni kívánt konfigurációs fájlban engedélyezni kell a hálózati teljesítményszámlálókat. A konfigurációs fájlban egyetlen beállítással minden hálózati teljesítményszámláló engedélyezve van vagy le van tiltva. Az egyes hálózati teljesítményszámlálók nem engedélyezhetők és nem tilthatók le. További információ: <performanceCounter> Elem (Hálózati Gépház).

Ha a hálózatszámlálók engedélyezve vannak, az AppDomain-alapú és a globális teljesítményszámlálókat is létrehozza és frissíti. Ha le van tiltva, az alkalmazás nem biztosít hálózati teljesítményszámláló adatokat.

A teljesítményszámlálók kategóriákba vannak csoportosítva. Az alábbi kód felsorolja az összes kategóriát:

PerformanceCounterCategory[] Array = PerformanceCounterCategory.GetCategories();
for (int i = 0; i < Array.Length; i++)
{
    Console.Out.WriteLine("{0}. Name={1} Help={2}", i, Array[i].CategoryName, Array[i].CategoryHelp);
}

A hálózati teljesítményszámlálók két kategóriában vannak felsorolva:

  • ".NET CLR-hálózatkezelés" – az eredeti teljesítményszámlálók, amelyeket .NET-keretrendszer 2. verzióban vezetnek be, és .NET-keretrendszer 2-es és újabb verziójában támogatottak.

  • ".NET CLR Networking 4.0.0.0" – A fenti szoftvercsatornák számlálói, valamint a .NET-keretrendszer 4-es és újabb verziójában támogatott új teljesítményszámlálók. Ezek az új számlálók teljesítményadatokat nyújtanak az objektumokról HttpWebRequest .

A teljesítményszámlálók alkalmazásbeli eléréséről és kezeléséről további információt a Teljesítményszámlálók című témakörben talál.

Biztonsági teljesítményszámlálók

A .NET CLR Biztonsági kategóriája olyan számlálókat tartalmaz, amelyek információt nyújtanak az alkalmazások közös nyelvi futtatókörnyezete által végrehajtott biztonsági ellenőrzésekről. Az alábbi táblázat ezeket a teljesítményszámlálókat ismerteti.

Teljesítményszámláló Leírás
# Hivatkozási idő ellenőrzése Megjeleníti az alkalmazás elindítása óta végzett kapcsolat-idő kódhozzáférés biztonsági ellenőrzéseinek teljes számát. A kapcsolati idejű kódhozzáférés biztonsági ellenőrzése akkor történik, ha a hívó egy adott engedélyt igényel a megfelelő időben (JIT) történő fordítási időpontban. A kapcsolati idő ellenőrzése hívónként egyszer történik. Ez a szám nem utal komoly teljesítményproblémákra; csupán a biztonsági rendszer tevékenységére utal.
%Time in RT checks Megjeleníti a futtatókörnyezeti kód hozzáférési biztonsági ellenőrzéseinek utolsó mintája óta eltelt idő százalékos arányát. Ez a számláló egy .NET-keretrendszer biztonsági ellenőrzés végén frissül. Ez nem átlag; az utolsó megfigyelt értéket jelöli.
%Time Sig Authenticating Jövőbeli használatra fenntartva.
Veremmélység Megjeleníti a verem mélységét az utolsó futtatókörnyezeti kód hozzáférésének biztonsági ellenőrzése során. A futtatókörnyezeti kód hozzáférésének biztonsági ellenőrzése a verem sétálásával történik. Ez a számláló nem átlag; csak az utolsó megfigyelt értéket jeleníti meg.
Futásidejű ellenőrzések összesen Megjeleníti az alkalmazás elindítása óta végrehajtott futtatókörnyezeti kódhozzáférés biztonsági ellenőrzéseinek teljes számát. A futtatókörnyezeti kód hozzáférési biztonsági ellenőrzése akkor történik, ha a hívó egy adott engedélyt igényel. A futtatókörnyezet ellenőrzése a hívó minden hívásán történik, és megvizsgálja a hívó aktuális szálveremét. Ha a Stack Walk Depth számlálóval használja, ez a számláló a biztonsági ellenőrzéseknél előforduló teljesítménybírságot jelzi.

Lásd még