Prestatiemeteritems in .NET Framework
Notitie
Dit artikel is specifiek voor .NET Framework. Dit geldt niet voor nieuwere implementaties van .NET, waaronder .NET 6 en nieuwere versies.
Dit artikel bevat een lijst met prestatiemeteritems die u kunt vinden in de Windows-prestatiemeter.
Prestatiemeteritems voor uitzonderingen
De categorie .NET CLR-uitzonderingen bevat tellers die informatie bieden over de uitzonderingen die door een toepassing worden gegenereerd. In de volgende tabel worden deze prestatiemeteritems beschreven.
Prestatiemeteritem | Beschrijving |
---|---|
Aantal gegenereerde exceps | Geeft het totale aantal uitzonderingen weer dat is gegenereerd sinds de toepassing is gestart. Dit omvat zowel .NET-uitzonderingen als onbeheerde uitzonderingen die worden geconverteerd naar .NET-uitzonderingen. Een HRESULT die wordt geretourneerd uit niet-beheerde code, wordt bijvoorbeeld geconverteerd naar een uitzondering in beheerde code. Deze teller bevat zowel verwerkte als niet-verwerkte uitzonderingen. Uitzonderingen die opnieuw worden geteld, worden opnieuw geteld. |
Aantal gegenereerde exceps per seconde | Geeft het aantal uitzonderingen weer dat per seconde is gegenereerd. Dit omvat zowel .NET-uitzonderingen als onbeheerde uitzonderingen die worden geconverteerd naar .NET-uitzonderingen. Een HRESULT die wordt geretourneerd uit niet-beheerde code, wordt bijvoorbeeld geconverteerd naar een uitzondering in beheerde code. Deze teller bevat zowel verwerkte als niet-verwerkte uitzonderingen. Het is geen gemiddelde in de loop van de tijd; het geeft het verschil weer tussen de waarden die in de laatste twee steekproeven zijn waargenomen, gedeeld door de duur van het steekproefinterval. Deze teller is een indicator van mogelijke prestatieproblemen als er een groot (>100) aantal uitzonderingen wordt gegenereerd. |
Aantal filters per seconde | Geeft het aantal .NET-uitzonderingsfilters weer dat per seconde wordt uitgevoerd. Een uitzonderingsfilter evalueert ongeacht of een uitzondering wordt verwerkt. Dit teller is geen gemiddelde in de loop van de tijd; het geeft het verschil weer tussen de waarden die in de laatste twee steekproeven zijn waargenomen, gedeeld door de duur van het steekproefinterval. |
Aantal laatste per seconde | Geeft het aantal voltooide blokken per seconde weer. Ten slotte wordt gegarandeerd dat er een blok wordt uitgevoerd, ongeacht hoe het try-blok is afgesloten. Alleen de ten slotte uitgevoerde blokken voor een uitzondering worden geteld; ten slotte worden blokken voor normale codepaden niet meegeteld door deze teller. Dit teller is geen gemiddelde in de loop van de tijd; het geeft het verschil weer tussen de waarden die in de laatste twee steekproeven zijn waargenomen, gedeeld door de duur van het steekproefinterval. |
Gooien naar vangstdiepte per seconde | Geeft het aantal stackframes weer dat is doorkruist, van het frame dat de uitzondering heeft verplaatst naar het frame dat de uitzondering heeft verwerkt, per seconde. Deze teller wordt opnieuw ingesteld op nul wanneer een uitzonderingshandler wordt ingevoerd, zodat geneste uitzonderingen de stackdiepte van handler-naar-handler weergeven. Dit teller is geen gemiddelde in de loop van de tijd; het geeft het verschil weer tussen de waarden die in de laatste twee steekproeven zijn waargenomen, gedeeld door de duur van het steekproefinterval. |
Prestatiemeteritems interoperabiliteit
De categorie .NET CLR Interop bevat tellers die informatie bieden over de interactie van een toepassing met COM-onderdelen, COM+-services en bibliotheken van externe typen. In de volgende tabel worden deze prestatiemeteritems beschreven.
Prestatiemeteritem | Beschrijving |
---|---|
Aantal CCW's | Geeft het huidige aantal AANROEPBARE WRAPPERS (CCW's) weer. Een CCW is een proxy voor een beheerd object waarnaar wordt verwezen vanuit een niet-beheerde COM-client. Deze teller geeft het aantal beheerde objecten aan waarnaar wordt verwezen door niet-beheerde COM-code. |
Aantal marshalling | Geeft het totale aantal keren weer dat argumenten en retourwaarden zijn ge marshalld van beheerd naar onbeheerde code, en vice versa, sinds de toepassing is gestart. Deze teller wordt niet verhoogd als de stubs inline zijn. (Stubs zijn verantwoordelijk voor het marshallen van argumenten en retourwaarden). Stubs zijn meestal inlined als de marshalling overhead klein is. |
Aantal stubs | Geeft het huidige aantal stubs weer dat is gemaakt door de algemene taalruntime. Stubs zijn verantwoordelijk voor het marshallen van argumenten en het retourneren van waarden van beheerde naar onbeheerde code, en vice versa, tijdens een COM-interoperabiliteitsgesprek of een aanroep van een platform. |
Aantal TLB-exports per seconde | Gereserveerd voor toekomstig gebruik. |
Aantal TLB-importen per seconde | Gereserveerd voor toekomstig gebruik. |
JIT-prestatiemeteritems
De JIT-categorie .NET CLR bevat tellers die informatie bieden over code die is gecompileerd met JIT. In de volgende tabel worden deze prestatiemeteritems beschreven.
Prestatiemeteritem | Beschrijving |
---|---|
Aantal IL Bytes JITted | Geeft het totale aantal CIL-bytes (Common Intermediate Language) weer dat is gecompileerd door de Just-In-Time-compiler (JIT) sinds de toepassing is gestart. Deze teller is gelijk aan het totaalaantal van de teller IL Bytes Jitted . |
Aantal methoden JITted | Geeft het totale aantal methoden weer dat door JIT is gecompileerd sinds de toepassing is gestart. Deze teller bevat geen vooraf gecompileerde JIT-methoden. |
% tijd in Jit | Geeft het percentage verstreken tijd weer dat is besteed aan JIT-compilatie sinds de laatste JIT-compilatiefase. Deze teller wordt bijgewerkt aan het einde van elke JIT-compilatiefase. Een JIT-compilatiefase vindt plaats wanneer een methode en de bijbehorende afhankelijkheden worden gecompileerd. |
IL Bytes Jitted per seconde | Geeft het aantal CIL-bytes weer dat per seconde is gecompileerd met JIT. Dit teller is geen gemiddelde in de loop van de tijd; het geeft het verschil weer tussen de waarden die in de laatste twee steekproeven zijn waargenomen, gedeeld door de duur van het steekproefinterval. |
Standaard-Jit-fouten | Geeft het piekaantal methoden weer dat de JIT-compiler niet kan compileren sinds de toepassing is gestart. Deze fout kan optreden als het CIL niet kan worden geverifieerd of als er een interne fout is opgetreden in de JIT-compiler. |
Totaal aantal IL Bytes Jitted | Geeft het totale aantal CIL-bytes weer dat is gecompileerd sinds de toepassing is gestart. Deze teller is gelijk aan het aantal bytes jitted . |
Prestatiemeteritems laden
De categorie .NET CLR Loading bevat tellers die informatie bieden over assembly's, klassen en toepassingsdomeinen die worden geladen. In de volgende tabel worden deze prestatiemeteritems beschreven.
Prestatiemeteritem | Beschrijving |
---|---|
% tijd laden | Gereserveerd voor toekomstig gebruik. |
Lengte van assembly's zoeken | Gereserveerd voor toekomstig gebruik. |
Bytes in Loader Heap | Geeft de huidige grootte in bytes weer van het geheugen dat door de klasselaadprogramma is vastgelegd in alle toepassingsdomeinen. Vastgelegd geheugen is de fysieke ruimte die is gereserveerd in het wisselbestand van de schijf. |
Huidige app-domeinen | Geeft het huidige aantal toepassingsdomeinen weer dat in deze toepassing is geladen. |
Huidige assembly's | Geeft het huidige aantal assembly's weer dat is geladen in alle toepassingsdomeinen in de toepassing die momenteel wordt uitgevoerd. Als de assembly wordt geladen als domeinneutraal van meerdere toepassingsdomeinen, wordt deze teller slechts één keer verhoogd. |
Huidige klassen geladen | Geeft het huidige aantal klassen weer dat in alle assembly's is geladen. |
Aantal app-domeinen | Geeft het aantal toepassingsdomeinen weer dat per seconde is geladen. Dit teller is geen gemiddelde in de loop van de tijd; het geeft het verschil weer tussen de waarden die in de laatste twee steekproeven zijn waargenomen, gedeeld door de duur van het steekproefinterval. |
Aantal niet-geladen app-domeinen | Geeft het aantal toepassingsdomeinen weer dat per seconde is uitgepakt. Dit teller is geen gemiddelde in de loop van de tijd; het geeft het verschil weer tussen de waarden die in de laatste twee steekproeven zijn waargenomen, gedeeld door de duur van het steekproefinterval. |
Snelheid van assembly's | Geeft het aantal assembly's weer dat per seconde in alle toepassingsdomeinen is geladen. Als de assembly wordt geladen als domeinneutraal van meerdere toepassingsdomeinen, wordt deze teller slechts één keer verhoogd. Dit teller is geen gemiddelde in de loop van de tijd; het geeft het verschil weer tussen de waarden die in de laatste twee steekproeven zijn waargenomen, gedeeld door de duur van het steekproefinterval. |
Aantal geladen klassen | Geeft het aantal klassen weer dat per seconde in alle assembly's is geladen. Dit teller is geen gemiddelde in de loop van de tijd; het geeft het verschil weer tussen de waarden die in de laatste twee steekproeven zijn waargenomen, gedeeld door de duur van het steekproefinterval. |
Belastingsfouten | Geeft het aantal klassen weer dat per seconde niet kan worden geladen. Dit teller is geen gemiddelde in de loop van de tijd; het geeft het verschil weer tussen de waarden die in de laatste twee steekproeven zijn waargenomen, gedeeld door de duur van het steekproefinterval. Belastingfouten kunnen om verschillende redenen optreden, zoals onvoldoende beveiliging of ongeldige indeling. Zie de Help voor profileringsservices voor meer informatie. |
Totaal aantal laadfouten | Geeft het piekaantal klassen weer dat niet kan worden geladen sinds de toepassing is gestart. Belastingfouten kunnen om verschillende redenen optreden, zoals onvoldoende beveiliging of ongeldige indeling. Zie de Help voor profileringsservices voor meer informatie. |
Totaal aantal app-domeinen | Geeft het piekaantal toepassingsdomeinen weer dat is geladen sinds de toepassing is gestart. |
Totaal aantal niet-geladen app-domeinen | Geeft het totale aantal toepassingsdomeinen weer dat is uitgepakt sinds de toepassing is gestart. Als een toepassingsdomein meerdere keren wordt geladen en uitgeladen, wordt deze teller verhoogd telkens wanneer het toepassingsdomein wordt uitgeladen. |
Totaal aantal assembly's | Geeft het totale aantal assembly's weer dat is geladen sinds de toepassing is gestart. Als de assembly wordt geladen als domeinneutraal van meerdere toepassingsdomeinen, wordt deze teller slechts één keer verhoogd. |
Totaal aantal klassen geladen | Geeft het cumulatieve aantal klassen weer dat in alle assembly's is geladen sinds de toepassing is gestart. |
Prestatiemeteritems vergrendelen en threads
De categorie .NET CLR LocksAndThreads bevat tellers die informatie bieden over beheerde vergrendelingen en threads die een toepassing gebruikt. In de volgende tabel worden deze prestatiemeteritems beschreven.
Prestatiemeteritem | Beschrijving |
---|---|
Aantal huidige logische threads | Geeft het aantal huidige beheerde threadobjecten in de toepassing weer. Deze teller onderhoudt het aantal actieve en gestopte threads. Dit teller is geen gemiddelde in de loop van de tijd; alleen de laatst waargenomen waarde wordt weergegeven. |
Aantal huidige fysieke threads | Geeft het aantal systeemeigen besturingssysteemthreads weer die zijn gemaakt en eigendom zijn van de algemene taalruntime om te fungeren als onderliggende threads voor beheerde thread-objecten. De waarde van dit item bevat niet de threads die door de runtime worden gebruikt in de interne bewerkingen; het is een subset van de threads in het besturingssysteemproces. |
Aantal huidige herkende threads | Geeft het aantal threads weer dat momenteel wordt herkend door de runtime. Deze threads zijn gekoppeld aan een bijbehorend beheerd thread-object. De runtime maakt deze threads niet, maar deze worden ten minste één keer uitgevoerd in de runtime. Alleen unieke threads worden bijgehouden; threads met dezelfde thread-id die de runtime opnieuw uitvoeren of opnieuw worden gemaakt nadat de thread wordt afgesloten, worden niet tweemaal geteld. |
Aantal herkende threads | Geeft het totale aantal threads weer dat is herkend door de runtime sinds de toepassing is gestart. Deze threads zijn gekoppeld aan een bijbehorend beheerd thread-object. De runtime maakt deze threads niet, maar deze worden ten minste één keer uitgevoerd in de runtime. Alleen unieke threads worden bijgehouden; threads met dezelfde thread-id die de runtime opnieuw uitvoeren of opnieuw worden gemaakt nadat de thread wordt afgesloten, worden niet tweemaal geteld. |
Conflictenpercentage per seconde | Geeft de snelheid weer waarmee threads in de runtime proberen een beheerde vergrendeling te verkrijgen. |
Huidige wachtrijlengte | Geeft het totale aantal threads weer dat momenteel wacht op het verkrijgen van een beheerde vergrendeling in de toepassing. Dit teller is geen gemiddelde in de loop van de tijd; de laatst waargenomen waarde wordt weergegeven. |
Wachtrijlengte per seconde | Geeft het aantal threads per seconde weer dat wacht om een vergrendeling in de toepassing te verkrijgen. Dit teller is geen gemiddelde in de loop van de tijd; het geeft het verschil weer tussen de waarden die in de laatste twee steekproeven zijn waargenomen, gedeeld door de duur van het steekproefinterval. |
Piek in wachtrijlengte | Geeft het totale aantal threads weer dat wachtte om een beheerde vergrendeling te verkrijgen sinds de toepassing is gestart. |
snelheid van herkende threads per seconde | Geeft het aantal threads per seconde weer dat door de runtime is herkend. Deze threads zijn gekoppeld aan een bijbehorend beheerd thread-object. De runtime maakt deze threads niet, maar deze worden ten minste één keer uitgevoerd in de runtime. Alleen unieke threads worden bijgehouden; threads met dezelfde thread-id die de runtime opnieuw uitvoeren of opnieuw worden gemaakt nadat de thread wordt afgesloten, worden niet tweemaal geteld. Dit teller is geen gemiddelde in de loop van de tijd; het geeft het verschil weer tussen de waarden die in de laatste twee steekproeven zijn waargenomen, gedeeld door de duur van het steekproefinterval. |
Totaal aantal conflicten | Geeft het totale aantal keren weer dat threads in de runtime hebben geprobeerd een beheerde vergrendeling te verkrijgen. |
Prestatiemeteritems voor geheugen
De categorie .NET CLR-geheugen bevat tellers die informatie bieden over de garbagecollector. In de volgende tabel worden deze prestatiemeteritems beschreven.
Prestatiemeteritem | Beschrijving |
---|---|
# Bytes in alle heaps | Geeft de som weer van de gen 1 Heap-grootte, Gen 2 Heap-grootte en grote object heapgroottemeteritems . Deze teller geeft het huidige geheugen aan dat is toegewezen in bytes op de garbagecollection heaps. |
# GC-ingangen | Geeft het huidige aantal garbagecollectiongrepen weer dat in gebruik is. Garbagecollection-ingangen zijn ingangen voor resources buiten de algemene taalruntime en de beheerde omgeving. |
# Gen 0-verzamelingen | Geeft het aantal keren weer dat de generatie 0-objecten (de jongste, meest recent toegewezen objecten) garbage verzameld zijn sinds de toepassing is gestart. Generatie 0 garbagecollection vindt plaats wanneer het beschikbare geheugen in generatie 0 niet voldoende is om te voldoen aan een toewijzingsaanvraag. Deze teller wordt aan het einde van een generatie 0 garbagecollection verhoogd. Garbagecollection's van de hogere generatie omvatten alle verzamelingen van lagere generatie. Deze teller wordt expliciet verhoogd wanneer een garbagecollection van de tweede generatie (generatie 1 of 2) plaatsvindt. Deze teller geeft de laatst waargenomen waarde weer. De tellerwaarde _Global_ is niet nauwkeurig en moet worden genegeerd. |
# Gen 1-verzamelingen | Geeft het aantal keren weer dat de objecten van de eerste generatie garbage zijn verzameld sinds de toepassing is gestart. De teller wordt aan het einde van een garbagecollection van de eerste generatie verhoogd. Garbagecollection's van de hogere generatie omvatten alle verzamelingen van lagere generatie. Deze teller wordt expliciet verhoogd wanneer een garbagecollection van de hogere generatie (generatie 2) plaatsvindt. Deze teller geeft de laatst waargenomen waarde weer. De tellerwaarde _Global_ is niet nauwkeurig en moet worden genegeerd. |
# Gen 2-verzamelingen | Geeft het aantal keren weer dat de objecten van de tweede generatie garbage zijn verzameld sinds de toepassing is gestart. De teller wordt aan het einde van een garbagecollection van de tweede generatie verhoogd (ook wel een volledige garbagecollection genoemd). Deze teller geeft de laatst waargenomen waarde weer. De tellerwaarde _Global_ is niet nauwkeurig en moet worden genegeerd. |
# Geïnduceerde GC | Geeft het piekaantal keren weer dat garbagecollection is uitgevoerd vanwege een expliciete aanroep naar GC.Collect. Het is een goede gewoonte om de garbagecollection de frequentie van de verzamelingen af te stemmen. |
Aantal vastgemaakte objecten | Geeft het aantal vastgemaakte objecten weer dat is aangetroffen in de laatste garbagecollection. Een vastgemaakt object is een object dat de garbagecollector niet in het geheugen kan verplaatsen. Deze teller houdt vastgemaakte objecten alleen bij in de heaps die afval zijn verzameld. Een garbagecollection van de 0e generatie veroorzaakt bijvoorbeeld alleen opsomming van vastgemaakte objecten in de heap van de 0e generatie. |
Aantal sinkblokken in gebruik | Geeft het huidige aantal synchronisatieblokken weer dat wordt gebruikt. Synchronisatieblokken zijn gegevensstructuren per object toegewezen voor het opslaan van synchronisatiegegevens. Ze bevatten zwakke verwijzingen naar beheerde objecten en moeten worden gescand door de garbagecollector. Synchronisatieblokken zijn niet beperkt tot het opslaan van synchronisatiegegevens; ze kunnen ook COM-interoperabiliteitsmetagegevens opslaan. Deze prestatiemeteritem geeft prestatieproblemen aan met intensief gebruik van synchronisatieprimitief. |
# Totaal aantal vastgelegde bytes | Geeft de hoeveelheid virtueel geheugen in bytes weer die momenteel door de garbagecollector is vastgelegd. Vastgelegd geheugen is het fysieke geheugen waarvoor ruimte is gereserveerd in het wisselbestand van de schijf. |
# Totaal gereserveerde bytes | Geeft de hoeveelheid virtueel geheugen in bytes weer die momenteel is gereserveerd door de garbagecollector. Gereserveerd geheugen is de virtuele geheugenruimte die is gereserveerd voor de toepassing wanneer er geen schijf- of hoofdgeheugenpagina's zijn gebruikt. |
% tijd in GC | Geeft het percentage verstreken tijd weer dat is besteed aan het uitvoeren van een garbagecollection sinds de laatste garbagecollectioncyclus. Deze teller geeft meestal het werk aan dat door de garbagecollector wordt uitgevoerd voor het verzamelen en comprimeren van geheugen namens de toepassing. Deze teller wordt alleen bijgewerkt aan het einde van elke garbagecollection. Dit teller is geen gemiddelde; de waarde weerspiegelt de laatst waargenomen waarde. |
Toegewezen bytes/seconde | Geeft het aantal bytes per seconde weer dat is toegewezen aan de garbagecollection heap. Deze teller wordt bijgewerkt aan het einde van elke garbagecollection, niet bij elke toewijzing. Dit teller is geen gemiddelde in de loop van de tijd; het geeft het verschil weer tussen de waarden die in de laatste twee steekproeven zijn waargenomen, gedeeld door de duur van het steekproefinterval. |
Finalization Survivors | Geeft het aantal garbagecollectionobjecten weer die een verzameling overleven, omdat ze wachten om te worden voltooid. Als deze objecten verwijzingen naar andere objecten bevatten, overleven deze objecten ook, maar worden ze niet meegeteld door deze teller. De gepromoveerde teller Finalization-Memory van Gen 0 vertegenwoordigt alle geheugen die door de voltooien is overleefd. Dit teller is niet cumulatief; het wordt bijgewerkt aan het einde van elke garbagecollection met het aantal overlevenden alleen tijdens die specifieke verzameling. Deze teller geeft de extra overhead aan die de toepassing kan ondervinden vanwege de voltooien. |
Grootte gen 0 heap | Geeft het maximum aantal bytes weer dat kan worden toegewezen in generatie 0; het geeft niet het huidige aantal bytes aan dat is toegewezen in generatie 0. Een garbagecollection van generatie 0 vindt plaats wanneer de toewijzingen sinds de laatste verzameling deze grootte overschrijden. De grootte van de generatie 0 wordt afgestemd door de garbagecollector en kan veranderen tijdens de uitvoering van de toepassing. Aan het einde van een generatie 0 verzameling is de grootte van de heap van de 0e generatie 0 bytes. Deze teller geeft de grootte in bytes weer van toewijzingen die de volgende generatie 0 garbagecollection aanroept. Deze teller wordt bijgewerkt aan het einde van een garbagecollection, niet bij elke toewijzing. |
Gen 0 gepromoveerde bytes per seconde | Geeft de bytes per seconde weer die worden gepromoveerd van generatie 0 naar generatie 1. Geheugen wordt gepromoveerd wanneer het een garbagecollection overleeft. Dit teller is een indicator van relatief langlevende objecten die per seconde worden gemaakt. In deze teller wordt het verschil weergegeven tussen de waarden die in de laatste twee steekproeven zijn waargenomen, gedeeld door de duur van het steekproefinterval. |
Grootte van gen 1 heap | Geeft het huidige aantal bytes in generatie 1 weer; deze teller geeft niet de maximale grootte van generatie 1 weer. Objecten worden in deze generatie niet rechtstreeks toegewezen; ze worden gepromoveerd van eerdere generatie 0 garbagecollection's. Deze teller wordt bijgewerkt aan het einde van een garbagecollection, niet bij elke toewijzing. |
Gen 1 gepromoveerde bytes per seconde | Geeft de bytes per seconde weer die van generatie 1 tot generatie 2 worden gepromoveerd. Objecten die alleen worden gepromoveerd omdat ze wachten om te worden voltooid, worden niet opgenomen in deze teller. Geheugen wordt gepromoveerd wanneer het een garbagecollection overleeft. Niets wordt gepromoveerd van generatie 2 omdat het de oudste generatie is. Deze teller is een indicator van zeer langlevende objecten die per seconde worden gemaakt. In deze teller wordt het verschil weergegeven tussen de waarden die in de laatste twee steekproeven zijn waargenomen, gedeeld door de duur van het steekproefinterval. |
Heapgrootte gen 2 | Geeft het huidige aantal bytes in generatie 2 weer. Objecten worden in deze generatie niet rechtstreeks toegewezen; ze worden gepromoveerd van generatie 1 tijdens de vorige generatie 1 garbagecollection. Deze teller wordt bijgewerkt aan het einde van een garbagecollection, niet bij elke toewijzing. |
Grote object heap grootte | Geeft de huidige grootte weer in bytes van de grote object heap. Objecten die groter zijn dan ongeveer 85.000 bytes worden behandeld als grote objecten door de garbagecollector en worden rechtstreeks toegewezen in een speciale heap. Ze worden niet gepromoveerd door de generaties. Deze teller wordt bijgewerkt aan het einde van een garbagecollection, niet bij elke toewijzing. |
Proces-ID | Geeft de proces-id weer van het CLR-procesexemplaren dat wordt bewaakt. |
Gepromoveerd finalisatiegeheugen van Gen 0 | Geeft alleen de bytes geheugen weer die van generatie 0 naar generatie 1 worden gepromoveerd, omdat ze wachten om te worden voltooid. Dit teller is niet cumulatief; geeft de waarde weer die aan het einde van de laatste garbagecollection is waargenomen. |
Gepromoveerd geheugen van Gen 0 | Geeft de bytes geheugen weer die de garbagecollection overleven en worden gepromoveerd van generatie 0 naar generatie 1. Objecten die alleen worden gepromoveerd omdat ze wachten om te worden voltooid, worden niet opgenomen in deze teller. Dit teller is niet cumulatief; geeft de waarde weer die aan het einde van de laatste garbagecollection is waargenomen. |
Gepromoveerd geheugen van Gen 1 | Geeft de bytes geheugen weer die de garbagecollection overleven en worden gepromoveerd van generatie 1 tot generatie 2. Objecten die alleen worden gepromoveerd omdat ze wachten om te worden voltooid, worden niet opgenomen in deze teller. Dit teller is niet cumulatief; geeft de waarde weer die aan het einde van de laatste garbagecollection is waargenomen. Deze teller wordt opnieuw ingesteld op 0 als de laatste garbagecollection alleen een verzameling van de 0e generatie was. |
Prestatiemeteritems voor netwerken
De categorie .NET CLR-netwerken bevat tellers die informatie bieden over gegevens die een toepassing via het netwerk verzendt en ontvangt. In de volgende tabel worden deze prestatiemeteritems beschreven.
Prestatiemeteritem | Beschrijving |
---|---|
Ontvangen bytes | Het cumulatieve totale aantal bytes dat door alle Socket objecten binnen het AppDomain proces is ontvangen sinds het proces is gestart. Dit nummer omvat gegevens en protocolgegevens die niet zijn gedefinieerd door TCP/IP. |
Verzonden bytes | Het cumulatieve aantal bytes dat door alle Socket objecten binnen het AppDomain proces is verzonden. Dit nummer omvat gegevens en protocolgegevens die niet zijn gedefinieerd door TCP/IP. |
Tot stand gebrachte verbindingen | Het cumulatieve totale aantal Socket objecten voor stroomsockets die ooit zijn verbonden binnen het AppDomain proces sinds het proces is gestart. |
Datagrammen ontvangen | Het cumulatieve totale aantal datagrampakketten dat door alle Socket objecten binnen het AppDomain proces is ontvangen sinds het proces is gestart. |
Verzonden datagrammen | Het cumulatieve totale aantal datagrampakketten dat door alle Socket objecten binnen het AppDomain proces is verzonden. |
Gemiddelde levensduur van HttpWebRequests | De gemiddelde tijd tot voltooiing voor alle HttpWebRequest objecten die zijn geëindigd in het laatste interval sinds AppDomain het proces is gestart. |
Gemiddelde wachtrijtijd httpWebRequests | De gemiddelde tijd-op-wachtrij voor alle HttpWebRequest objecten die de wachtrij in het laatste interval hebben gelaten binnen het AppDomain begin van het proces. |
HttpWebRequests Created/sec | Het aantal HttpWebRequest objecten dat per seconde is gemaakt binnen de AppDomain. |
HttpWebRequests Queued/sec | Het aantal HttpWebRequest objecten dat per seconde aan de wachtrij is toegevoegd.AppDomain |
HttpWebRequests afgebroken per seconde | Het aantal HttpWebRequest objecten waarin de toepassing de Abort methode per seconde aangeroepen heeft binnen de AppDomain. |
HttpWebRequests Failed/sec | Het aantal HttpWebRequest objecten dat een mislukte statuscode heeft ontvangen van de server per seconde binnen de AppDomain. |
Er worden verschillende klassen netwerkprestatiemeteritems ondersteund:
- Gebeurtenistellers die het aantal keren meten dat een gebeurtenis heeft plaatsgevonden.
- Gegevenstellers die de hoeveelheid verzonden of ontvangen gegevens meten.
- Duurmeteritems die meten hoe lang verschillende processen duren. De tijden worden gemeten op de objecten elk interval (meestal in seconden) nadat ze uit verschillende toestanden zijn gekomen.
- Prestatiemeteritems per interval waarmee het aantal objecten wordt gemeten dat een bepaalde overgang per interval maakt (normaal per seconde).
De prestatiemeteritems voor netwerken voor gebeurtenissen zijn onder andere:
- Tot stand gebrachte verbindingen
- Datagrammen ontvangen
- Verzonden datagrammen
Deze prestatiemeteritems bieden aantallen sinds het proces is gestart. Het aantal tot stand gebrachte Socket verbindingen omvat expliciete Socket methodeaanroepen door een toepassing voor een stroomsocketverbinding die tot stand is gebracht, evenals interne aanroepen van andere klassen (HttpWebRequest, FtpWebRequestWebClienten TcpClientbijvoorbeeld) naar Socket klasse
De aantallen voor Datagrams Ontvangen en Datagrams Sent bevatten datagrampakketten die worden verzonden of ontvangen met behulp van expliciete Socket methodeaanroepen door een toepassing en interne aanroepen van andere klassen (UdpClientbijvoorbeeld) naar Socket. Klasse. De aantallen Ontvangen datagrammen en Datagrams Sent kunnen ook worden gebruikt om een zeer ruwe meting te bieden van het aantal verzonden of ontvangen bytes met behulp van datagrammen door ervan uit te gaan dat een gemiddelde grootte voor een datagram wordt aangenomen.
De prestatiemeteritems voor netwerken voor gegevens zijn onder andere:
- Ontvangen bytes
- Verzonden bytes
De bovenstaande tellers bieden aantallen bytes sinds het proces is gestart.
Er zijn twee duurmeteritems die meten hoe lang het duurde voordat HttpWebRequest objecten hun hele levenscyclus of slechts een deel ervan doorlopen:
- Gemiddelde levensduur van HttpWebRequests
- Gemiddelde wachtrijtijd httpWebRequests
Voor de teller Gemiddelde levensduur van HttpWebRequests begint de levensduur van de meeste HttpWebRequest objecten altijd met de tijd dat het object wordt gemaakt totdat de reactiestroom door de toepassing wordt gesloten. Er zijn twee ongebruikelijke gevallen:
Als de toepassing nooit de GetResponse of BeginGetResponse methoden aanroept, wordt de levensduur van het HttpWebRequest object genegeerd.
Als het HttpWebRequest object een WebException aanroep van de GetResponse of EndGetResponse methoden genereert, eindigt de levensduur wanneer de uitzondering wordt gegenereerd. Technisch gezien wordt de onderliggende antwoordstroom ook op dat punt gesloten (de antwoordstroom die aan de gebruiker wordt geretourneerd, is echt een geheugenstroom die een kopie van de antwoordstroom bevat).
Er zijn vier tellers waarmee bepaalde HttpWebRequest objectproblemen per interval worden bijgehouden. Met deze prestatiemeteritems kunnen ontwikkelaars, beheerders en ondersteuningsmedewerkers van toepassingen beter begrijpen wat de HttpWebRequest objecten doen. De tellers bevatten het volgende:
- HttpWebRequests Created/sec
- HttpWebRequests Queued/sec
- HttpWebRequests afgebroken per seconde
- HttpWebRequests Failed/sec
Voor de teller HttpWebRequests Aborted/sec worden ook interne aanroepen Abort geteld. Deze interne aanroepen worden meestal veroorzaakt door time-outs die een toepassing mogelijk wil meten.
De teller HttpWebRequests Failed/sec bevat het aantal HttpWebRequest objecten dat een mislukte statuscode van de server per seconde heeft ontvangen. Dit betekent dat de statuscode die is ontvangen van de Http-server aan het einde van de aanvraag, zich niet in het bereik tussen 200 en 299 bevindt. Statuscodes die worden verwerkt en resulteren in een nieuwe aanvraag (veel van de 401 niet-geautoriseerde statuscodes, bijvoorbeeld) mislukken of niet op basis van het resultaat van de nieuwe poging. Als de toepassing een fout zou zien op basis van de nieuwe poging, wordt deze teller verhoogd.
Netwerkprestatiemeteritems kunnen worden geopend en beheerd met behulp van de PerformanceCounter en gerelateerde klassen in de System.Diagnostics naamruimte. Netwerkprestatiemeteritems kunnen ook worden weergegeven met de Windows Performance Monitor-console.
Netwerkprestatiemeteritems moeten zijn ingeschakeld in het configuratiebestand dat moet worden gebruikt. Alle netwerkprestatiemeteritems zijn ingeschakeld of uitgeschakeld met één instelling in het configuratiebestand. Afzonderlijke prestatiemeteritems voor netwerken kunnen niet worden ingeschakeld of uitgeschakeld. Zie <performanceCounter-element> (netwerkinstellingen) voor meer informatie.
Als netwerktellers zijn ingeschakeld, worden zowel per AppDomain als globale prestatiemeteritems gemaakt en bijgewerkt. Als deze optie is uitgeschakeld, biedt de toepassing geen prestatiemeteritems voor netwerken.
Prestatiemeteritems worden gegroepeerd in categorieën. De volgende code bevat alle categorieën:
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);
}
De prestatiemeteritems voor netwerken worden in twee categorieën vermeld:
'.NET CLR Networking': de oorspronkelijke prestatiemeteritems die zijn geïntroduceerd op .NET Framework versie 2 en die worden ondersteund op .NET Framework versie 2 en hoger.
'.NET CLR Networking 4.0.0.0': alle bovenstaande sockettellers plus de nieuwe prestatiemeteritems die worden ondersteund op .NET Framework versie 4 en hoger. Deze nieuwe tellers bieden prestatie-informatie over HttpWebRequest objecten.
Zie Prestatiemeteritems voor meer informatie over het openen en beheren van prestatiemeteritems in een toepassing.
Prestatiemeteritems voor beveiliging
De categorie .NET CLR-beveiliging bevat tellers die informatie bieden over de beveiligingscontroles die de algemene taalruntime uitvoert voor een toepassing. In de volgende tabel worden deze prestatiemeteritems beschreven.
Prestatiemeteritem | Beschrijving |
---|---|
# Tijdcontroles koppelen | Geeft het totale aantal toegangsbeveiligingscontroles voor de koppelingstijdcode weer sinds de toepassing is gestart. Beveiligingscontroles voor toegangsbeveiliging voor koppelingstijdcode worden uitgevoerd wanneer een aanroeper een bepaalde machtiging vereist tijdens de JIT-compilatietijd (Just-In-Time). Er wordt eenmaal per beller een controle op de tijd van een koppeling uitgevoerd. Dit aantal wijst niet op ernstige prestatieproblemen; het is slechts indicatief voor de activiteit van het beveiligingssysteem. |
% tijd in RT-controles | Geeft het percentage verstreken tijd weer dat is besteed aan het uitvoeren van beveiligingscontroles voor runtime-codetoegang sinds het laatste voorbeeld. Deze teller wordt bijgewerkt aan het einde van een .NET Framework-beveiligingscontrole. Het is geen gemiddelde; het vertegenwoordigt de laatst waargenomen waarde. |
% tijd sig authenticeren | Gereserveerd voor toekomstig gebruik. |
Diepte van stackwandeling | Geeft de diepte van de stack weer tijdens die laatste controle voor toegang tot runtime-code. Beveiligingscontroles voor toegang tot runtimecode worden uitgevoerd door de stack te doorlopen. Dit teller is geen gemiddelde; alleen de laatst waargenomen waarde wordt weergegeven. |
Totaal aantal runtimecontroles | Geeft het totale aantal beveiligingscontroles voor toegang tot runtimecode weer dat is uitgevoerd sinds de toepassing is gestart. Beveiligingscontroles voor toegang tot runtimecode worden uitgevoerd wanneer een beller een bepaalde machtiging vereist. De runtimecontrole wordt uitgevoerd voor elke aanroep door de aanroeper en onderzoekt de huidige threadstack van de aanroeper. Bij gebruik met de teller Stack Walk Depth geeft deze teller de prestatiestraf aan die optreedt voor beveiligingscontroles. |