Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
In dit artikel worden diagnostische hulpprogramma's voor browserontwikkelaars in Blazor WebAssembly apps beschreven.
Voorwaarde
Installeer de .NET WebAssembly buildtools:
dotnet workload install wasm-tools
Hulpprogramma's voor browserontwikkelaars
App-code kan handmatig worden geprofileerd met behulp van de diagnostische profiler in de console voor ontwikkelaarshulpprogramma's van een browser.
Ingebouwde diagnostische functies zijn beschikbaar om bij te houden:
- AOT-compilatie (Ahead-Of-Time)
- Aanroepspecificatie (callspec', reeks en timing van functie-aanroepen) en instrumentatie
De MSBuild-eigenschappen in de volgende tabel schakelen profilerintegratie in.
| Vastgoed | Verstek | Waarde instellen op... | Beschrijving |
|---|---|---|---|
<WasmProfilers> |
Geen waarde | browser |
Mono profilers om te gebruiken. Mogelijke waarden zijn 'browser' en 'log.' Als u beide wilt gebruiken, scheidt u de waarden met een puntkomma. De browser profiler maakt integratie mogelijk met de profiler voor ontwikkelaarshulpprogramma's van de browser. |
<WasmNativeStrip> |
true |
false |
Maakt het mogelijk om het native uitvoerbare bestand te verwijderen. |
<WasmNativeDebugSymbols> |
true |
true |
Hiermee kunt u bouwen met systeemeigen foutopsporingssymbolen. |
Door de Timing-Allow-Origin HTTP-header in te stellen, kunnen er nauwkeurigere tijdmetingen worden uitgevoerd.
Het inschakelen van profilers heeft negatieve gevolgen voor de grootte en prestaties, dus publiceer geen app voor productie met profilers ingeschakeld. In het volgende voorbeeld wordt een voorwaarde ingesteld op een sectie van een eigenschapsgroep die alleen profilering inschakelt wanneer de app is gebouwd met /p:BlazorSampleProfilingEnabled=true (.NET CLI) of <BlazorSampleProfilingEnabled>true</BlazorSampleProfilingEnabled> in een Visual Studio-publicatieprofiel, waarbij 'BlazorSampleProfilingEnabled' een aangepaste symboolnaam is die u kiest en niet conflicteert met andere symboolnamen.
In het projectbestand van de app (.csproj):
<PropertyGroup Condition="'$(BlazorSampleProfilingEnabled)' == 'true'">
<WasmProfilers>browser;</WasmProfilers>
<WasmNativeStrip>false</WasmNativeStrip>
<WasmNativeDebugSymbols>true</WasmNativeDebugSymbols>
<!-- disable debugger -->
<WasmDebugLevel>0</WasmDebugLevel>
</PropertyGroup>
U kunt ook functies inschakelen wanneer de app is gebouwd met de .NET CLI. De volgende opties die worden doorgegeven aan de dotnet build opdracht weerspiegelen de voorgaande configuratie van de MSBuild-eigenschapsconfiguratie.
/p:WasmProfilers=browser /p:WasmNativeStrip=false /p:WasmNativeDebugSymbols=true
Bij het instellen van WebAssembly-profilers met <WasmProfilers> is compilatie vooraf (AOT) niet vereist.
De profiler voor browserontwikkelaars kan worden gebruikt met AOT (<RunAOTCompilation>/<RunAOTCompilationAfterBuild> ingesteld op true) en zonder WebAssembly profilers (<WasmProfilers> verwijderd).
Als u de namen van AOT-methoden in de ontwikkelaarsconsole wilt zien, installeer de DWARF Chrome-extensie.
Het voorbeeldinterval instellen
Configureer het voorbeeldinterval in het projectbestand van de app. In het volgende voorbeeld vertegenwoordigt de {INTERVAL} tijdelijke aanduiding de tijd in milliseconden. De standaardinstelling als sampleIntervalMs niet is gespecificeerd, is 10 ms.
<PropertyGroup>
<WasmProfilers>browser:interval={INTERVAL};</WasmProfilers>
</PropertyGroup>
Aanroepspecificatie (callspec)
Als u geprofileerde methoden wilt filteren, gebruikt u de aanroepspecificatie (callspec).
Voeg een filter toe callspec aan de browser WebAssembly-profiler in het <WasmProfilers> element:
<WasmProfilers>browser:callspec={FILTER};</WasmProfilers>
Toegestane waarden voor plaatsaanduidingen {FILTER} worden weergegeven in de volgende tabel.
| Filteren | Beschrijving |
|---|---|
all |
Alle assemblages |
program |
Toegangspunt-assembly |
{ASSEMBLY} |
Specifieer een assembly ({ASSEMBLY}) |
M:Type:{METHOD} |
Specificeert een methode ({METHOD}) |
N:{NAMESPACE} |
Specificeert een naamruimte ({NAMESPACE}) |
T:{TYPE} |
Specificeert een type ({TYPE}) |
+EXPR |
Bevat de uitdrukking |
-EXPR |
Expressie uitsluiten |
In het volgende voorbeeld worden geprofileerde methoden gefilterd op de naamruimte SampleApp van de app en is het steekproefinterval 50 ms.
<WasmProfilers>browser:callspec=N:SampleApp,interval=50</WasmProfilers>