Čítače výkonu v rozhraní .NET Framework
Poznámka:
Tento článek je specifický pro rozhraní .NET Framework. Nevztahuje se na novější implementace .NET, včetně .NET 6 a novějších verzí.
Tento článek obsahuje seznam čítačů výkonu, které najdete ve Windows Sledování výkonu.
Čítače výkonu výjimek
Kategorie Výjimky .NET CLR zahrnuje čítače, které poskytují informace o výjimkách vyvolaných aplikací. Následující tabulka popisuje tyto čítače výkonu.
Čítač výkonu | Popis |
---|---|
# of Exceps Thrown | Zobrazí celkový počet výjimek vyvolaných od spuštění aplikace. To zahrnuje výjimky .NET i nespravované výjimky, které jsou převedeny na výjimky .NET. Například HRESULT vrácený z nespravovaného kódu se převede na výjimku ve spravovaném kódu. Tento čítač zahrnuje zpracovávané i neošetřené výjimky. Znovu se započítávají výjimky, které se opakují. |
# of Exceps Thrown / Sec | Zobrazí počet vyvolaných výjimek za sekundu. To zahrnuje výjimky .NET i nespravované výjimky, které jsou převedeny na výjimky .NET. Například HRESULT vrácený z nespravovaného kódu se převede na výjimku ve spravovaném kódu. Tento čítač zahrnuje zpracovávané i neošetřené výjimky. Není průměrem v průběhu času; zobrazuje rozdíl mezi hodnotami pozorovanými v posledních dvou vzorcích vydělenou dobou trvání intervalu vzorku. Tento čítač je indikátorem potenciálních problémů s výkonem, pokud je vyvolán velký (>100s) počet výjimek. |
# of Filters / Sec | Zobrazí počet spuštěných filtrů výjimek .NET za sekundu. Filtr výjimek se vyhodnotí bez ohledu na to, jestli je výjimka zpracována. Tento čítač není průměrem v průběhu času; zobrazuje rozdíl mezi hodnotami pozorovanými v posledních dvou vzorcích vydělenou dobou trvání intervalu vzorku. |
# of Finallys / Sec | Zobrazí počet spuštěných bloků finally za sekundu. Nakonec je zaručeno, že se má provést bez ohledu na to, jak byl blok try ukončen. Započítávají se pouze bloky nakonec provedené pro výjimku; a konečně bloky na normálních cestách kódu nejsou tímto čítačem počítána. Tento čítač není průměrem v průběhu času; zobrazuje rozdíl mezi hodnotami pozorovanými v posledních dvou vzorcích vydělenou dobou trvání intervalu vzorku. |
Odhození do hloubky / s | Zobrazí počet snímků zásobníku procházených z rámce, který vyvolal výjimku na rámec, který zpracoval výjimku za sekundu. Tento čítač se při zadání obslužné rutiny výjimky resetuje na nulu, takže vnořené výjimky zobrazují hloubku zásobníku obslužné rutiny na obslužnou rutinu. Tento čítač není průměrem v průběhu času; zobrazuje rozdíl mezi hodnotami pozorovanými v posledních dvou vzorcích vydělenou dobou trvání intervalu vzorku. |
Čítače výkonu zprostředkovatele komunikace
Kategorie interoperability .NET CLR zahrnuje čítače, které poskytují informace o interakci aplikace s komponentami MODELU COM, službami MODELU COM+ a knihovnami externích typů. Následující tabulka popisuje tyto čítače výkonu.
Čítač výkonu | Popis |
---|---|
# of CCWs | Zobrazí aktuální počet volatelných obálky modelu COM (CCWs). CcW je proxy server pro spravovaný objekt, na který odkazuje nespravovaný klient MODELU COM. Tento čítač označuje počet spravovaných objektů odkazovaných nespravovaným kódem MODELU COM. |
# of marshalling | Zobrazí celkový počet argumentů a návratových hodnot, které byly od spuštění aplikace zařazovány ze spravovaného na nespravovaný kód a naopak. Tento čítač se nezvýšil, pokud jsou zástupné procedury vloženy. (Zástupné procedury zodpovídají za zařazování argumentů a návratových hodnot). Zástupné procedury jsou obvykle vloženy, pokud je režie zařazování malá. |
# of Stubs | Zobrazí aktuální počet zástupných procedur vytvořených modulem CLR (Common Language Runtime). Zástupné procedury zodpovídají za zařazování argumentů a vrací hodnoty ze spravovaného do nespravovaného kódu a naopak během volání zprostředkovatele komunikace modelu COM nebo volání volání platformy. |
# of TLB export / s | Vyhrazeno pro budoucí použití. |
# of TLB imports / sec | Vyhrazeno pro budoucí použití. |
JIT – čítače výkonu
Kategorie JIT .NET CLR zahrnuje čítače, které poskytují informace o kódu, který byl zkompilován JIT. Následující tabulka popisuje tyto čítače výkonu.
Čítač výkonu | Popis |
---|---|
# of IL Bytes JITted | Zobrazí celkový počet běžných bajtů CIL (Common Intermediate Language) zkompilovaných kompilátorem JIT (just-in-time) od spuštění aplikace. Tento čítač je ekvivalentem celkového počtu čítačů bajtů IL. |
# of Methods JITted | Zobrazí celkový počet metod JIT zkompilovaných od spuštění aplikace. Tento čítač neobsahuje předem kompilované metody JIT. |
% času v Jit | Zobrazí procento uplynulého času stráveného v kompilaci JIT od poslední fáze kompilace JIT. Tento čítač se aktualizuje na konci každé fáze kompilace JIT. Fáze kompilace JIT nastane, když se zkompiluje metoda a její závislosti. |
Bajty IL Jitted / s | Zobrazí počet bajtů CIL, které jsou zkompilovány JIT za sekundu. Tento čítač není průměrem v průběhu času; zobrazuje rozdíl mezi hodnotami pozorovanými v posledních dvou vzorcích vydělenou dobou trvání intervalu vzorku. |
Standardní selhání jitu | Zobrazí maximální počet metod, které kompilátor JIT nepodařilo zkompilovat od spuštění aplikace. K tomuto selhání může dojít v případě, že CIL nelze ověřit nebo pokud je v kompilátoru JIT vnitřní chyba. |
Total # of IL Bytes Jitted | Zobrazí celkový počet bajtů CIL zkompilovaných JIT od spuštění aplikace. Tento čítač je ekvivalentní čítači čítače bajtů IL . |
Načítání čítačů výkonu
Kategorie načítání .NET CLR zahrnuje čítače, které poskytují informace o sestaveních, třídách a doménách aplikace, které jsou načteny. Následující tabulka popisuje tyto čítače výkonu.
Čítač výkonu | Popis |
---|---|
% času načítání | Vyhrazeno pro budoucí použití. |
Délka hledání sestavení | Vyhrazeno pro budoucí použití. |
Bajty v haldě zavaděče | Zobrazí aktuální velikost paměti potvrzené zavaděčem třídy ve všech doménách aplikace. Potvrzená paměť je fyzický prostor vyhrazený ve stránkovacím souboru disku. |
Aktuální domény aplikace | Zobrazí aktuální počet domén aplikací načtených v této aplikaci. |
Aktuální sestavení | Zobrazí aktuální počet sestavení načtených napříč všemi doménami aplikace v aktuálně spuštěné aplikaci. Pokud je sestavení načteno jako doménově neutrální z více domén aplikace, tento čítač se zvýší pouze jednou. |
Aktuální třídy načtené | Zobrazí aktuální počet tříd načtených ve všech sestaveních. |
Míra appdomains | Zobrazí počet načtených domén aplikací za sekundu. Tento čítač není průměrem v průběhu času; zobrazuje rozdíl mezi hodnotami pozorovanými v posledních dvou vzorcích vydělenou dobou trvání intervalu vzorku. |
Míra uvolněných domén appdomain | Zobrazí počet domén aplikací uvolněných za sekundu. Tento čítač není průměrem v průběhu času; zobrazuje rozdíl mezi hodnotami pozorovanými v posledních dvou vzorcích vydělenou dobou trvání intervalu vzorku. |
Rychlost sestavení | Zobrazí počet sestavení načtených za sekundu ve všech doménách aplikace. Pokud je sestavení načteno jako doménově neutrální z více domén aplikace, tento čítač se zvýší pouze jednou. Tento čítač není průměrem v průběhu času; zobrazuje rozdíl mezi hodnotami pozorovanými v posledních dvou vzorcích vydělenou dobou trvání intervalu vzorku. |
Rychlost načtených tříd | Zobrazí počet tříd načtených za sekundu ve všech sestaveních. Tento čítač není průměrem v průběhu času; zobrazuje rozdíl mezi hodnotami pozorovanými v posledních dvou vzorcích vydělenou dobou trvání intervalu vzorku. |
Rychlost selhání zatížení | Zobrazí počet tříd, které se nepodařilo načíst za sekundu. Tento čítač není průměrem v průběhu času; zobrazuje rozdíl mezi hodnotami pozorovanými v posledních dvou vzorcích vydělenou dobou trvání intervalu vzorku. K selháním načítání může dojít z mnoha důvodů, například kvůli nedostatečnému zabezpečení nebo neplatnému formátu. Podrobnosti najdete v nápovědě ke službám profilace. |
Total # of Load Failures | Zobrazí maximální počet tříd, které se nepodařilo načíst od spuštění aplikace. K selháním načítání může dojít z mnoha důvodů, například kvůli nedostatečnému zabezpečení nebo neplatnému formátu. Podrobnosti najdete v nápovědě ke službám profilace. |
Total Appdomains | Zobrazí maximální počet domén aplikací načtených od spuštění aplikace. |
Total appdomains unloaded | Zobrazí celkový počet uvolněných domén aplikací od spuštění aplikace. Pokud je doména aplikace načtena a uvolněna vícekrát, tento čítač se zvýší při každém uvolnění domény aplikace. |
Total Assemblyes | Zobrazí celkový počet sestavení načtených od spuštění aplikace. Pokud je sestavení načteno jako doménově neutrální z více domén aplikace, tento čítač se zvýší pouze jednou. |
Celkový počet načtených tříd | Zobrazí kumulativní počet tříd načtených ve všech sestaveních od spuštění aplikace. |
Čítače výkonu zámků a vláken
Kategorie .NET CLR LocksAndThreads obsahuje čítače, které poskytují informace o spravovaných zámkech a vláknech, které aplikace používá. Následující tabulka popisuje tyto čítače výkonu.
Čítač výkonu | Popis |
---|---|
# of current logical Threads | Zobrazí počet aktuálních spravovaných objektů vlákna v aplikaci. Tento čítač udržuje počet spuštěných i zastavených vláken. Tento čítač není průměrem v průběhu času; zobrazí pouze poslední pozorovanou hodnotu. |
# of current physical Threads | Zobrazí počet nativních vláken operačního systému vytvořených a vlastněných modulem CLR (Common Language Runtime), které budou fungovat jako podkladová vlákna pro spravované objekty vlákna. Hodnota tohoto čítače nezahrnuje vlákna používaná modulem runtime ve svých interních operacích; je podmnožinou vláken v procesu operačního systému. |
# of current recognized threads | Zobrazí počet vláken, která jsou aktuálně rozpoznána modulem runtime. Tato vlákna jsou přidružená k odpovídajícímu spravovanému objektu vlákna. Modul runtime nevytvoří tato vlákna, ale jsou spuštěny uvnitř modulu runtime alespoň jednou. Sledují se pouze jedinečná vlákna; vlákna se stejným ID vlákna, které znovu zadejte modul runtime nebo se znovu vytvoří po ukončení vlákna, se nezapočítávají dvakrát. |
# of total recognized Threads | Zobrazí celkový počet vláken rozpoznaných modulem runtime od spuštění aplikace. Tato vlákna jsou přidružená k odpovídajícímu spravovanému objektu vlákna. Modul runtime nevytvoří tato vlákna, ale jsou spuštěny uvnitř modulu runtime alespoň jednou. Sledují se pouze jedinečná vlákna; vlákna se stejným ID vlákna, které znovu zadejte modul runtime nebo se znovu vytvoří po ukončení vlákna, se nezapočítávají dvakrát. |
Míra kolizí / s | Zobrazí rychlost, s jakou se vlákna v modulu runtime pokusí získat spravovaný zámek neúspěšně. |
Aktuální délka fronty | Zobrazí celkový počet vláken, která aktuálně čekají na získání spravovaného zámku v aplikaci. Tento čítač není průměrem v průběhu času; zobrazí poslední pozorovanou hodnotu. |
Délka fronty / s | Zobrazí počet vláken za sekundu, která čekají na získání zámku v aplikaci. Tento čítač není průměrem v průběhu času; zobrazuje rozdíl mezi hodnotami pozorovanými v posledních dvou vzorcích vydělenou dobou trvání intervalu vzorku. |
Špička délky fronty | Zobrazí celkový počet vláken, která čekala na získání spravovaného zámku od spuštění aplikace. |
rychlost rozpoznaných vláken / s | Zobrazí počet vláken za sekundu rozpoznaných modulem runtime. Tato vlákna jsou přidružená k odpovídajícímu spravovanému objektu vlákna. Modul runtime nevytvoří tato vlákna, ale jsou spuštěny uvnitř modulu runtime alespoň jednou. Sledují se pouze jedinečná vlákna; vlákna se stejným ID vlákna, které znovu zadejte modul runtime nebo se znovu vytvoří po ukončení vlákna, se nezapočítávají dvakrát. Tento čítač není průměrem v průběhu času; zobrazuje rozdíl mezi hodnotami pozorovanými v posledních dvou vzorcích vydělenou dobou trvání intervalu vzorku. |
Total # of Contentions | Zobrazí celkový počet neúspěšných pokusů o získání spravovaného zámku podprocesy v modulu runtime. |
Čítače výkonu paměti
Kategorie Paměť .NET CLR zahrnuje čítače, které poskytují informace o uvolňování paměti. Následující tabulka popisuje tyto čítače výkonu.
Čítač výkonu | Popis |
---|---|
Počet bajtů ve všech haldách | Zobrazí součet čítačů Velikost haldy Gen 1, Velikost haldy Gen 2 a Velikost haldy velkého objektu. Tento čítač označuje aktuální paměť přidělenou v bajtech v haldách uvolňování paměti. |
# Popisovače GC | Zobrazí aktuální počet popisovačů uvolňování paměti, které se používají. Obslužné rutiny uvolňování paměti jsou obslužné rutiny prostředků externích modulu CLR (Common Language Runtime) a spravovaného prostředí. |
# Gen 0 Collections | Zobrazí počet, kolikrát se od spuštění aplikace shromažďují objekty generace 0 (tj. nejnovější přidělené objekty). K uvolňování paměti 0 generace dochází v případě, že dostupná paměť v generaci 0 nestačí k uspokojení žádosti o přidělení. Tento čítač se zvýší na konci uvolňování paměti generace 0. Kolekce paměti vyšší generace zahrnují všechny kolekce nižší generace. Tento čítač se explicitně zvýší, když dojde k uvolnění paměti vyšší generace (generace 1 nebo 2). Tento čítač zobrazí poslední pozorovanou hodnotu. Hodnota čítače _Global_ není přesná a měla by být ignorována. |
# Gen 1 Kolekce | Zobrazuje počet, kolikrát jsou objekty 1. generace od spuštění aplikace uvolněny z paměti. Čítač se zvýší na konci uvolňování paměti generace 1. Kolekce paměti vyšší generace zahrnují všechny kolekce nižší generace. Tento čítač se explicitně zvýší, když dojde k uvolnění paměti vyšší generace (generace 2). Tento čítač zobrazí poslední pozorovanou hodnotu. Hodnota čítače _Global_ není přesná a měla by být ignorována. |
# Kolekce Gen 2 | Zobrazuje počet, kolikrát se od spuštění aplikace shromažďují objekty generace 2. Čítač se zvýší na konci uvolňování paměti generace 2 (označuje se také jako úplné uvolňování paměti). Tento čítač zobrazí poslední pozorovanou hodnotu. Hodnota čítače _Global_ není přesná a měla by být ignorována. |
# Indukované GC | Zobrazuje maximální počet provedení uvolňování paměti z důvodu explicitního volání GC.Collect. Osvědčeným postupem je nechat uvolňování paměti vyladit frekvenci svých kolekcí. |
# of Pinned Objects | Zobrazí počet připnutých objektů, ke kterým došlo v posledním uvolňování paměti. Připnutý objekt je objekt, který uvolňování paměti nemůže přesunout do paměti. Tento čítač sleduje připnuté objekty pouze v haldách, které se shromažďují z paměti. Například generování 0 uvolňování paměti způsobuje výčet připnutých objektů pouze v haldě generace 0. |
# of Sink Blocks in use | Zobrazí aktuální počet využitých bloků synchronizace. Bloky synchronizace jsou datové struktury jednotlivých objektů přidělené pro ukládání informací o synchronizaci. Uchovávají slabé odkazy na spravované objekty a musí být prohledány uvolňováním paměti. Bloky synchronizace nejsou omezeny na ukládání informací o synchronizaci; můžou také ukládat metadata zprostředkovatele komunikace modelu COM. Tento čítač označuje problémy s výkonem s velkým využitím primitiv synchronizace. |
# Celkový počet potvrzených bajtů | Zobrazí velikost virtuální paměti v bajtech, které jsou aktuálně potvrzeny systémem uvolňování paměti. Potvrzená paměť je fyzická paměť, pro kterou bylo vyhrazeno místo ve stránkovacím souboru disku. |
# Celkový počet rezervovaných bajtů | Zobrazí velikost virtuální paměti v bajtech, která je aktuálně vyhrazena systémem uvolňování paměti. Vyhrazená paměť je virtuální paměť vyhrazená pro aplikaci, pokud nebyly použity žádné diskové nebo hlavní paměťové stránky. |
% času v GC | Zobrazí procento uplynulého času stráveného provedením uvolňování paměti od posledního cyklu uvolňování paměti. Tento čítač obvykle označuje práci prováděnou uvolňováním paměti za účelem shromáždění a komprimace paměti jménem aplikace. Tento čítač se aktualizuje pouze na konci každé uvolňování paměti. Tento čítač není průměr; jeho hodnota odráží poslední pozorovanou hodnotu. |
Přidělené bajty za sekundu | Zobrazí počet bajtů za sekundu přidělených v haldě uvolňování paměti. Tento čítač se aktualizuje na konci každé uvolňování paměti, nikoli při každém přidělení. Tento čítač není průměrem v průběhu času; zobrazuje rozdíl mezi hodnotami pozorovanými v posledních dvou vzorcích vydělenou dobou trvání intervalu vzorku. |
Finalizace přeživších | Zobrazí počet objektů shromážděných z paměti, které přežijí kolekci, protože čekají na dokončení. Pokud tyto objekty obsahují odkazy na jiné objekty, tyto objekty také přežijí, ale nejsou počítány tímto čítačem. Zvýšená finalizace paměti z čítače Gen 0 představuje veškerou paměť, která přežila kvůli finalizaci. Tento čítač není kumulativní; aktualizuje se na konci každé uvolňování paměti s počtem přeživších pouze během této konkrétní kolekce. Tento čítač označuje dodatečnou režii, kterou může aplikace mít kvůli finalizaci. |
Velikost haldy Gen 0 | Zobrazí maximální bajty, které lze přidělit ve generaci 0; neuvádí aktuální počet bajtů přidělených ve generaci 0. Generování 0 uvolňování paměti nastane, když přidělení od poslední kolekce překročí tuto velikost. Velikost 0 generace je vyladěna uvolňováním paměti a během provádění aplikace se může změnit. Na konci kolekce 0 generace je velikost haldy generace 0 0 bajtů. Tento čítač zobrazí velikost přidělení v bajtech, která vyvolá uvolňování paměti nové generace 0. Tento čítač se aktualizuje na konci uvolňování paměti, nikoli při každém přidělení. |
Gen 0 Propagované bajty/s | Zobrazí bajty za sekundu, které jsou povýšeny z generace 0 na generaci 1. Paměť se zvýší, když přežije uvolňování paměti. Tento čítač je indikátorem relativně dlouhodobých objektů, které se vytvářejí za sekundu. Tento čítač zobrazuje rozdíl mezi hodnotami pozorovanými v posledních dvou vzorcích vydělenými dobou trvání intervalu vzorku. |
Velikost haldy Gen 1 | Zobrazí aktuální počet bajtů v generaci 1; tento čítač nezobrazuje maximální velikost generace 1. Objekty nejsou přímo přidělovány v této generaci; jsou povýšeny z předchozí generace 0 uvolňování paměti. Tento čítač se aktualizuje na konci uvolňování paměti, nikoli při každém přidělení. |
Gen 1 Promoted Bytes/Sec | Zobrazí bajty za sekundu, které jsou povýšeny z generace 1 na generaci 2. Objekty, které jsou povýšeny pouze proto, že čekají na dokončení, nejsou zahrnuty v tomto čítači. Paměť se zvýší, když přežije uvolňování paměti. Z generace 2 není nic povýšeno, protože se jedná o nejstarší generaci. Tento čítač je indikátorem vytváření velmi dlouhodobých objektů za sekundu. Tento čítač zobrazuje rozdíl mezi hodnotami pozorovanými v posledních dvou vzorcích vydělenými dobou trvání intervalu vzorku. |
Velikost haldy Gen 2 | Zobrazí aktuální počet bajtů v generaci 2. Objekty nejsou přímo přidělovány v této generaci; jsou podporovány z generace 1 během předchozí generace 1 uvolňování paměti. Tento čítač se aktualizuje na konci uvolňování paměti, nikoli při každém přidělení. |
Velikost haldy velkého objektu | Zobrazí aktuální velikost haldy velkého objektu v bajtech. Objekty, které jsou větší než přibližně 85 000 bajtů, jsou považovány za velké objekty uvolňování paměti a jsou přímo přiděleny ve speciální haldě. Nejsou podporovány prostřednictvím generací. Tento čítač se aktualizuje na konci uvolňování paměti, nikoli při každém přidělení. |
ID procesu | Zobrazí ID procesu instance procesu CLR, která se monitoruje. |
Upřednostněná finalizace – paměť z Gen 0 | Zobrazí bajty paměti, které jsou povýšeny z generace 0 na generaci 1, pouze proto, že čekají na dokončení. Tento čítač není kumulativní; zobrazí hodnotu zjištěnou na konci posledního uvolňování paměti. |
Povýšená paměť z Gen 0 | Zobrazí bajty paměti, které přežijí uvolňování paměti a jsou povýšeny z generace 0 na generaci 1. Objekty, které jsou povýšeny pouze proto, že čekají na dokončení, nejsou zahrnuty v tomto čítači. Tento čítač není kumulativní; zobrazí hodnotu zjištěnou na konci posledního uvolňování paměti. |
Povýšená paměť z Gen 1 | Zobrazí bajty paměti, které přežijí uvolňování paměti a jsou povýšeny z generace 1 na generaci 2. Objekty, které jsou povýšeny pouze proto, že čekají na dokončení, nejsou zahrnuty v tomto čítači. Tento čítač není kumulativní; zobrazí hodnotu zjištěnou na konci posledního uvolňování paměti. Tento čítač se resetuje na 0, pokud poslední uvolňování paměti bylo pouze 0 kolekce generace. |
Čítače výkonu sítě
Kategorie Sítě .NET CLR zahrnuje čítače, které poskytují informace o datech, která aplikace odesílá a přijímá přes síť. Následující tabulka popisuje tyto čítače výkonu.
Čítač výkonu | Popis |
---|---|
Přijaté bajty | Kumulativní celkový počet bajtů přijatých všemi Socket objekty v rámci AppDomain procesu od spuštění procesu. Toto číslo zahrnuje data a všechny informace o protokolu, které nejsou definovány protokolem TCP/IP. |
Odeslané bajty | Kumulativní počet bajtů odeslaných všemi Socket objekty v rámci AppDomain procesu od spuštění procesu. Toto číslo zahrnuje data a všechny informace o protokolu, které nejsou definovány protokolem TCP/IP. |
Vytvořená připojení | Kumulativní celkový počet objektů pro sokety datových Socket proudů, které byly od začátku procesu připojeny AppDomain . |
Přijatá datagramy | Kumulativní celkový počet paketů datagramu přijatých všemi Socket objekty v rámci procesu AppDomain od spuštění procesu. |
Odeslaná datagramy | Kumulativní celkový počet paketů datagramu odesílaných všemi Socket objekty v rámci AppDomain procesu od spuštění. |
HttpWebRequests Average Lifetime | Průměrná doba dokončení pro všechny HttpWebRequest objekty, které skončily v posledním intervalu AppDomain od spuštění procesu. |
HttpWebRequests Average Queue Time | Průměrná doba ve frontě pro všechny HttpWebRequest objekty, které opustily frontu v posledním intervalu od AppDomain spuštění procesu. |
HttpWebRequests Created/sec | Počet objektů vytvořených HttpWebRequest za sekundu v rámci objektu AppDomain. |
HttpWebRequests Queued/s | Počet HttpWebRequest objektů, které byly přidány do fronty za sekundu AppDomainv rámci . |
HttpWebRequests Aborted/sec | Počet HttpWebRequest objektů, ve kterých aplikace volala metodu za sekundu AbortAppDomainv rámci . |
HttpWebRequests Failed/sec | Počet HttpWebRequest objektů, které obdržely stavový kód selhání ze serveru za sekundu AppDomainv rámci . |
Podporuje se několik tříd čítačů výkonu sítě:
- Čítače událostí, které měří počet výskytů určité události.
- Čítače dat, které měří množství odeslaných nebo přijatých dat
- Čítače doby trvání, které měří dobu trvání různých procesů Časy se měří u objektů v každém intervalu (obvykle v sekundách) po jejich vystupování z různých stavů.
- Čítače pro intervaly, které měří počet objektů, které provádějí určitý přechod na interval (obvykle za sekundu).
Mezi čítače výkonu sítě pro události patří:
- Vytvořená připojení
- Přijatá datagramy
- Odeslaná datagramy
Tyto čítače výkonu poskytují počty od spuštění procesu. Počet vytvořených Socket připojení zahrnuje explicitní Socket volání metod aplikací pro připojení soketu streamu, která byla vytvořena, a také interní volání provedené jinými třídami (HttpWebRequest, FtpWebRequest, WebClienta TcpClient, například) do Socket třídy.
Počty přijatých datagramů a odeslaných datagramů zahrnují pakety datagramu odeslané nebo přijaté pomocí explicitních Socket volání metod aplikací a interní volání provedených jinými třídami (UdpClientnapříklad) do Socket. Třída. Počet přijatých datovýchgramů a odeslaných datovýchgramů lze použít také k poskytnutí velmi hrubé míry, kolik bajtů bylo odesláno nebo přijato pomocí datovýchgramů za předpokladu průměrné velikosti datagramu.
Mezi čítače výkonu sítě pro data patří:
- Přijaté bajty
- Odeslané bajty
Výše uvedené čítače poskytují počty bajtů od spuštění procesu.
Existují dva čítače doby trvání, které měří, jak dlouho trvalo HttpWebRequest , než objekty prošly jejich celým životním cyklem nebo jen jeho součástí:
- HttpWebRequests Average Lifetime
- HttpWebRequests Average Queue Time
U čítače Průměrné doby života HttpWebRequests začíná životnost většiny HttpWebRequest objektů vždy s časem, kdy se objekt vytvoří, dokud aplikace neskončí, dokud aplikace neskončí datový proud odpovědi. Existují dva neobvyklé případy:
Pokud aplikace nikdy nevolá GetResponse metody nebo BeginGetResponse metody, je doba života objektu HttpWebRequest ignorována.
Pokud objekt HttpWebRequest vyvolá WebException při volání GetResponse nebo EndGetResponse metody, životnost skončí při vyvolání výjimky. Technicky vzato se podkladový stream odpovědi také zavře (stream odpovědi vrácený uživateli je ve skutečnosti datový proud paměti obsahující kopii streamu odpovědi).
Existují čtyři čítače, které sledují určité HttpWebRequest problémy s objekty v intervalu. Tyto čítače výkonu můžou pomoct vývojářům aplikací, správcům a pracovníkům podpory lépe porozumět tomu, co HttpWebRequest objekty dělají. Mezi čítače patří:
- HttpWebRequests Created/sec
- HttpWebRequests Queued/s
- HttpWebRequests Aborted/sec
- HttpWebRequests Failed/sec
U čítače HttpWebRequests Aborted/s sec se počítá také interní volání Abort . Tato interní volání jsou obvykle způsobena vypršením časových limitů, které může aplikace chtít měřit.
Čítač HttpWebRequests Failed/s obsahuje počet HttpWebRequest objektů, které obdržely chybný stavový kód ze serveru za sekundu. To znamená, že stavový kód přijatý ze serveru HTTP na konci požadavku nebyl v rozsahu od 200 do 299. Stavové kódy, které se zpracovávají a vedou k novému požadavku (mnoho z 401 neautorizovaných stavových kódů, například) selže nebo se nezdaří na základě výsledku opakování. Pokud by aplikace na základě opakování zobrazila chybu, pak se tento čítač zvýší.
K čítačům výkonu sítě je možné přistupovat a spravovat je pomocí PerformanceCounter souvisejících tříd v System.Diagnostics oboru názvů. Čítače výkonu sítě lze zobrazit také pomocí konzoly windows Sledování výkonu.
Čítače výkonu sítě je potřeba povolit v konfiguračním souboru, který se má použít. Všechny čítače výkonu sítě jsou povoleny nebo zakázány s jedním nastavením v konfiguračním souboru. Jednotlivé čítače výkonu sítě nelze povolit ani zakázat. Další informace naleznete v tématu <performanceCounter> – element (nastavení sítě).a0>
Pokud jsou povolené čítače sítě, vytvoří se a aktualizuje se čítače výkonu podle appdomény i globálního výkonu. Pokud je tato možnost zakázaná, aplikace nebude poskytovat žádná data čítače výkonu sítě.
Čítače výkonu jsou seskupené do kategorií. Následující kód obsahuje seznam všech kategorií:
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);
}
Čítače výkonu sítě jsou uvedeny ve dvou kategoriích:
Sítě .NET CLR – původní čítače výkonu zavedené v rozhraní .NET Framework verze 2 a podporované v rozhraní .NET Framework verze 2 a novější.
".NET CLR Networking 4.0.0.0" – všechny výše uvedené čítače soketů a nové čítače výkonu podporované v rozhraní .NET Framework verze 4 a novější. Tyto nové čítače poskytují informace o výkonu objektů HttpWebRequest .
Další informace o přístupu a správě čítačů výkonu v aplikaci naleznete v tématu Čítače výkonu.
Čítače výkonu zabezpečení
Kategorie zabezpečení .NET CLR zahrnuje čítače, které poskytují informace o kontrolách zabezpečení, že modul clr common language runtime provádí pro aplikaci. Následující tabulka popisuje tyto čítače výkonu.
Čítač výkonu | Popis |
---|---|
# Kontroly času propojení | Zobrazí celkový počet kontrol zabezpečení přístupu kódu link-time od spuštění aplikace. Kontroly zabezpečení přístupu kódu v době propojení se provádějí, když volající požaduje určité oprávnění v době kompilace JIT (just-in-time). Kontrola času propojení se provádí jednou na volajícího. Tento počet nezpochybní vážné problémy s výkonem; pouze indikuje činnost bezpečnostního systému. |
% času v kontrolách RT | Zobrazí procento uplynulého času stráveného prováděním kontrol zabezpečení přístupu kódu za běhu od posledního vzorku. Tento čítač se aktualizuje na konci kontroly zabezpečení rozhraní .NET Framework. Není to průměr; představuje poslední pozorovanou hodnotu. |
Ověřování % času | Vyhrazeno pro budoucí použití. |
Hloubka chodily zásobníku | Zobrazí hloubku zásobníku během poslední kontroly zabezpečení přístupu kódu modulu runtime. Kontroly zabezpečení přístupu kódu modulu runtime se provádějí procházením zásobníku. Tento čítač není průměr; zobrazí pouze poslední pozorovanou hodnotu. |
Total Runtime Checks | Zobrazí celkový počet kontrol zabezpečení přístupu kódu runtime provedených od spuštění aplikace. Kontroly zabezpečení přístupu kódu za běhu se provádějí, když volající požaduje konkrétní oprávnění. Kontrola modulu runtime se provádí při každém volání volajícím a zkoumá aktuální zásobník vláken volajícího. Při použití s čítačem hloubky zásobníku walk označuje tento čítač snížení výkonu, ke kterému dochází při kontrolách zabezpečení. |