Delen via


Dialoogvenster Geavanceerde instellingen (Gelijktijdigheid visualiseren)

Met behulp van het dialoogvenster Geavanceerde instellingen in de Concurrency Visualizer kunt u bepalen hoe traceringen worden verzameld. Het dialoogvenster bevat tabbladen voor symbolen, Just My Code, buffering, filtering, CLR-gebeurtenissen, markeringen, providers en bestanden.

Symbols

De Concurrency Visualizer gebruikt dezelfde symboolinstellingen als de Visual Studio Debugger. De Concurrency Visualizer gebruikt de instellingen om aanroepstapels op te lossen die zijn gekoppeld aan prestatiegegevens. Wanneer traceringen worden verwerkt, heeft de Concurrency Visualizer toegang tot de symboolservers die zijn opgegeven op de instellingenpagina. Wanneer deze gegevens via een netwerk worden geopend, vertraagt traceringsverwerking. Als u minder tijd nodig hebt om symbolen op te lossen, kunt u symbolen lokaal in de cache opslaan. Als er symbolen zijn gedownload, worden deze in Visual Studio geladen vanuit de lokale cache.

Alleen mijn code

Just My Code is standaard de set . exe en . dll-bestanden die zijn gekoppeld aan de huidige oplossing in Visual Studio. De functie Gelijktijdigheid visualiseren evalueert deze set bestanden wanneer u de functie Just My Code gebruikt om aanroepstacks te filteren. Op het tabblad Just My Code kunt u directories toevoegen die .exe- en .dll-bestanden bevatten aan de locaties die de Concurrency Visualizer gebruikt voor Just My Code.

De paden van de . exe en . DLL-bestanden worden opgeslagen in het traceringsbestand wanneer de tracering wordt verzameld. Het wijzigen van deze instelling heeft geen invloed op eerder verzamelde traceringen.

Bufferen

De Concurrency Visualizer maakt gebruik van Event Tracing voor Windows (ETW) bij het verzamelen van een trace. ETW gebruikt verschillende buffers tijdens het opslaan van gebeurtenissen. De standaard-ETW-bufferinstellingen zijn mogelijk niet optimaal in alle gevallen en kunnen in sommige gevallen problemen veroorzaken, zoals verloren gebeurtenissen. U kunt het tabblad Buffering gebruiken om ETW-bufferinstellingen te configureren. Zie Gebeurtenistracering en EVENT_TRACE_PROPERTIES structuur voor meer informatie.

Filter

Op het tabblad Filter kunt u de set gebeurtenissen selecteren die door de Concurrency Visualizer worden verzameld. Als u een subset van gebeurtenissen selecteert, beperkt u de typen gegevens die in de rapporten worden weergegeven, verkleint u de grootte van elke tracering en vermindert u de tijd die nodig is om traceringen te verwerken.

CLR-gebeurtenissen

Gebeurtenissen die door de Common Language Runtime (CLR) worden gegenereerd, stellen de Concurrency Visualizer in staat om beheerde aanroepstacks te analyseren. Als u de verzameling van CLR-gebeurtenissen deactiveert, wordt de traceringsgrootte verminderd, maar sommige aanroepstacks worden niet opgelost. Als gevolg hiervan is sommige CPU-threadactiviteit mogelijk onjuist gecategoriseerd.

Verzamelen voor systeemeigen processen

CLR-gebeurtenissen worden standaard alleen verzameld wanneer een beheerd proces wordt geprofileerd omdat ze normaal gesproken niet nodig zijn voor systeemeigen processen. In sommige gevallen (bijvoorbeeld wanneer een systeemeigen proces als host voor de CLR fungeert), moet u mogelijk CLR-gebeurtenissen verzamelen voor een systeemeigen proces. Als dit het geval is, schakelt u het selectievakje Verzamelen voor systeemeigen processen in.

Rundown-gebeurtenissen uitschakelen

De CLR genereert gebeurtenissen van twee providers: runtime en rundown. Als u CLR-runtime-gebeurtenissen wilt verzamelen, maar geen rundown-gebeurtenissen wilt verzamelen, schakelt u het selectievakje Rundown-gebeurtenissen uitschakelen in. Dit vermindert de grootte van het traceringsbestand dat door verzameling wordt gegenereerd, maar sommige stacktraces kunnen mogelijk niet worden opgelost. Zie CLR ETW Providers voor meer informatie.

Voorbeeldgebeurtenissen

U kunt voorbeeldgebeurtenissen gebruiken om aanroepstacks te verzamelen die zijn gekoppeld aan de uitvoering van threads. Deze gebeurtenissen worden ongeveer één keer per milliseconde verzameld voor threads die in het huidige proces worden uitgevoerd. Als u de verzameling voorbeeldgebeurtenissen uitschakelt, wordt de grootte van de verzamelde tracering verminderd, maar kunt u geen aanroepstacks bekijken die zijn gekoppeld aan de uitvoering van threads.

GPU-gebeurtenissen

GPU-gebeurtenissen zijn gebeurtenissen die worden gegenereerd door DirectX. Als u de verzameling GPU-gebeurtenissen uitschakelt, wordt de grootte van de verzamelde tracering verminderd, maar kunt u geen GPU-activiteit weergeven in de weergave Gebruik of DirectX Engine-activiteit in de threads-weergave.

I/O-gebeurtenissen voor bestanden

I/O-gebeurtenissen voor bestanden vertegenwoordigen toegang tot de schijf namens het huidige proces. Als u I/O-gebeurtenissen voor bestanden uitschakelt, wordt de grootte van de tracering verminderd, maar de threadsweergave rapporteert geen informatie over schijfkanalen of schijfbewerkingen.

Markeringen

Op het tabblad Markeringen kunt u de set ETW-providers configureren die worden weergegeven als Markers in de Concurrency Visualizer. U kunt de verzameling Markeringen ook filteren op basis van urgentieniveau en ETW-categorie. Als u de Concurrency Visualizer SDK gebruikt en uw eigen markeringsprovider gebruikt, kunt u deze hier registreren zodat deze wordt weergegeven in de threadsweergave.

Een nieuwe provider toevoegen

Als uw code gebruikmaakt van de Concurrency Visualizer SDK of ETW-gebeurtenissen genereert die aan de EventSource conventie voldoen, kunt u deze gebeurtenissen bekijken in de gelijktijdigheids visualiseren door ze te registreren in dit dialoogvenster.

Voer in het veld Naam een naam in die de typen gebeurtenissen beschrijft die door de provider worden gegenereerd. Voer in het veld GUID de GUID in die is gekoppeld aan deze provider. (Een GUID is gekoppeld aan elke ETW-provider.)

U kunt eventueel opgeven of u gebeurtenissen van deze provider wilt filteren op basis van categorie- of urgentieniveau. U kunt het categorieveld gebruiken om te filteren op Concurrency Visualizer SDK-categorieën. Voer hiervoor een door komma's gescheiden reeks categorieën of categorieënbereiken in. Hiermee worden de categorieën gebeurtenissen in de huidige provider opgegeven die moeten worden weergegeven. Als u een EventSource provider toevoegt, kunt u het categorieveld gebruiken om te filteren op ETW-trefwoord. Omdat het trefwoord een bitmasker is, kunt u een door komma's gescheiden tekenreeks met gehele getallen gebruiken om op te geven welke bits in het masker zijn ingesteld. Met '1,2' worden bijvoorbeeld de eerste en tweede bits ingesteld en wordt dit omgezet in 6 in decimaal.

U kunt de lijst op urgentieniveau gebruiken om gebeurtenissen te filteren die een urgentie of ETW-niveau hebben dat kleiner is dan de opgegeven waarde.

Een bestaande provider configureren

Als u instellingen wilt bewerken die zijn gekoppeld aan een bestaande provider, selecteert u deze in de lijst en kiest u vervolgens de knop Provider bewerken . U kunt de instellingen voor naam, GUID en filteren wijzigen.

Filter markerdata uit Concurrency Visualizer-rapporten

Als u niet wilt dat gegevens voor een bepaalde provider in toekomstige traceringen worden weergegeven, schakelt u het selectievakje uit naast de provider die u wilt verwijderen.

Files

Op het tabblad Bestanden kunt u de map opgeven waaronder traceringsbestanden worden opgeslagen telkens wanneer een tracering wordt verzameld. Concurrency Visualizer genereert vier bestanden voor elke trace die het verzamelt.

  • Een kernelmodus-gebeurtenistracelogboek (ETL) bestand (.kernel.etl*)

  • Een logboekbestand voor gebeurtenistracering in de gebruikersmodus (.user.etl*)

  • Een Concurrency Visualizer gegevensbestand (.CVData*)

  • Een Concurrency Visualizer Trace-bestand (.CVTrace*)

    De twee ETL-bestanden slaan de onbewerkte traceringsgegevens op en de twee gelijktijdigheids visualiseren-bestanden slaan de verwerkte gegevens op. De onbewerkte ETL-bestanden worden doorgaans niet gebruikt nadat een tracering is verwerkt. Als u de ETL-bestanden (Event Trace Log) verwijderen selecteert na analyse , wordt de hoeveelheid traceringsgegevens die op uw schijf zijn opgeslagen, verminderd.