Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Tento článek popisuje diagnostické nástroje vývojářských nástrojů prohlížeče v Blazor WebAssembly aplikacích.
Předpoklad
Nainstalujte nástroje sestavení .NET WebAssembly:
dotnet workload install wasm-tools
Vývojářské nástroje prohlížeče
Kód aplikace lze ručně profilovat pomocí diagnostického profileru v konzole vývojářských nástrojů prohlížeče.
Integrované diagnostické funkce jsou k dispozici ke sledování:
- Kompilace ahead-of-time (AOT)
- Specifikace volání ("callspec, posloupnost a načasování volání funkcí) a instrumentace
Vlastnosti NÁSTROJE MSBuild v následující tabulce umožňují integraci profileru.
| Vlastnictví | Výchozí | Nastavit hodnotu na... | Popis |
|---|---|---|---|
<WasmProfilers> |
Žádná hodnota | browser |
Mono profilátory, které se mají použít. Potenciální hodnoty jsou "browser" a "log". Pokud chcete použít obojí, oddělte hodnoty středníkem. Profiler browser umožňuje integraci s profilerem vývojářských nástrojů prohlížeče. |
<WasmNativeStrip> |
true |
false |
Povolí odstranění nativního spustitelného souboru. |
<WasmNativeDebugSymbols> |
true |
true |
Umožňuje sestavení pomocí nativních symbolů ladění. |
Nastavení hlavičkyTiming-Allow-Origin HTTP umožňuje přesnější měření času.
Povolení profilátorů má negativní vliv na velikost a výkon, takže nepublikujte aplikaci pro produkční prostředí s povolenými profilátory. V následujícím příkladu je podmínka nastavená v části skupiny vlastností, která umožňuje profilaci pouze v případě, že je aplikace sestavená pomocí /p:BlazorSampleProfilingEnabled=true rozhraní příkazového řádku (.NET CLI) nebo <BlazorSampleProfilingEnabled>true</BlazorSampleProfilingEnabled> v profilu publikování sady Visual Studio, kde "BlazorSampleProfilingEnabled" je název vlastního symbolu, který zvolíte a není v konfliktu s jinými názvy symbolů.
V souboru projektu aplikace (.csproj):
<PropertyGroup Condition="'$(BlazorSampleProfilingEnabled)' == 'true'">
<WasmProfilers>browser;</WasmProfilers>
<WasmNativeStrip>false</WasmNativeStrip>
<WasmNativeDebugSymbols>true</WasmNativeDebugSymbols>
<!-- disable debugger -->
<WasmDebugLevel>0</WasmDebugLevel>
</PropertyGroup>
Případně povolte funkce při vytváření aplikace pomocí rozhraní příkazového řádku .NET. Následující možnosti předané do příkazového dotnet build zrcadlí předchozí konfiguraci vlastností MSBuild:
/p:WasmProfilers=browser /p:WasmNativeStrip=false /p:WasmNativeDebugSymbols=true
Nastavení profilátorů <WasmProfilers> WebAssembly nevyžaduje kompilaci AOT (ahead-of-time).
Profiler nástrojů pro vývojáře prohlížeče je možné použít s profilerem AOT (<RunAOTCompilation>/<RunAOTCompilationAfterBuild> nastaveným na true) a bez profilátorů WebAssembly (<WasmProfilers> odebraných).
Pokud chcete zobrazit názvy metod AOT v konzole vývojářských nástrojů, nainstalujte rozšíření DWARF pro Chrome.
Nastavení intervalu vzorku
Nakonfigurujte ukázkový interval v souboru projektu aplikace. V následujícím příkladu {INTERVAL} představuje zástupný symbol čas v milisekundách. Výchozí nastavení, pokud sampleIntervalMs není zadané, je 10 ms.
<PropertyGroup>
<WasmProfilers>browser:interval={INTERVAL};</WasmProfilers>
</PropertyGroup>
Specifikace volání (callspec)
Pokud chcete filtrovat profilované metody, použijte specifikaci volání (callspec).
Přidejte callspec s filtrem do WebAssembly profileru v browser elementu <WasmProfilers>.
<WasmProfilers>browser:callspec={FILTER};</WasmProfilers>
Přípustné hodnoty zástupných symbolů {FILTER} jsou uvedeny v následující tabulce.
| Filtrovat | Popis |
|---|---|
all |
Všechna sestavení |
program |
Sestavení vstupního bodu |
{ASSEMBLY} |
Určuje sestavení ({ASSEMBLY}) |
M:Type:{METHOD} |
Určuje metodu ({METHOD}) |
N:{NAMESPACE} |
Určuje obor názvů ({NAMESPACE}) |
T:{TYPE} |
Určuje typ ({TYPE}). |
+EXPR |
Obsahuje výraz |
-EXPR |
Vyloučení výrazu |
V následujícím příkladu se profilované metody filtrují do oboru názvů SampleApp aplikace a interval vzorkování je 50 ms.
<WasmProfilers>browser:callspec=N:SampleApp,interval=50</WasmProfilers>