Delen via


ASP.NET Core Blazor WebAssembly ontwikkelaarstools voor browsersdiagnostiek

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:

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>

Aanvullende bronnen