Teljesítményszámlálók a .NET-keretrendszerben
Feljegyzés
Ez a cikk a .NET-keretrendszer vonatkozik. Ez nem vonatkozik a .NET újabb implementációira, beleértve a .NET 6-os és újabb verzióit.
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. |
Kapcsolatok létrejöttek | 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:
- Kapcsolatok létrejöttek
- 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 beállítások).
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. |