Megosztás a következőn keresztül:


ASP.NET Core Blazor teljesítményével kapcsolatos ajánlott eljárások

Megjegyzés:

Ez nem a cikk legújabb verziója. Az aktuális kiadásról a cikk .NET 10-es verziójában olvashat.

Figyelmeztetés

A ASP.NET Core ezen verziója már nem támogatott. További információt a .NET és a .NET Core támogatási szabályzatában talál. A jelen cikk .NET 9-es verzióját lásd az aktuális kiadásért .

Blazor a legtöbb valósághű alkalmazás felhasználói felületének nagy teljesítményére van optimalizálva. A legjobb teljesítmény azonban attól függ, hogy a fejlesztők a megfelelő mintákat és funkciókat vezetik be.

Megjegyzés:

A cikkek ezen csomópontjának kód példái null értékű referenciatípusokat (NRT-ket) és .NET-fordító nullállapotú statikus elemzéseket vezetnek be, amelyeket a .NET 6-os vagy újabb ASP.NET Core támogat.

Idő előtti (AOT) összeállítás

Az előre elkészített (AOT) összeállítás egy Blazor alkalmazás .NET-kódját közvetlenül a natív WebAssembly-be fordítja le a böngésző általi közvetlen végrehajtáshoz. Az AOT által lefordított alkalmazások nagyobb alkalmazásokat eredményeznek, amelyek letöltése hosszabb időt vesz igénybe, de az AOT által lefordított alkalmazások általában jobb futtatókörnyezeti teljesítményt nyújtanak, különösen a processzorigényes feladatokat végrehajtó alkalmazások esetében. További információ: ASP.NET Core Blazor WebAssembly buildeszközök és előzetes fordítás (AOT).

Metrikák és nyomkövetés

A metrikák és nyomkövetési képességek segítenek az alkalmazások teljesítményének monitorozásában és diagnosztizálásában, a felhasználói interakciók nyomon követésében és az éles környezetekben az összetevők viselkedésének megértésében.

Konfiguráció

A metrikák és a nyomkövetés engedélyezéséhez az alkalmazásban, konfigurálja az Blazor-t a következő mérőkkel és forrásokkal az alkalmazás fájljában, ahol a szolgáltatások regisztrálva vannak:

builder.Services.ConfigureOpenTelemetryMeterProvider(meterProvider =>
{
    meterProvider.AddMeter("Microsoft.AspNetCore.Components");
    meterProvider.AddMeter("Microsoft.AspNetCore.Components.Lifecycle");
    meterProvider.AddMeter("Microsoft.AspNetCore.Components.Server.Circuits");
});

builder.Services.ConfigureOpenTelemetryTracerProvider(tracerProvider =>
{
    tracerProvider.AddSource("Microsoft.AspNetCore.Components");
    tracerProvider.AddSource("Microsoft.AspNetCore.Components.Server.Circuits");
});

Teljesítménymérők

A következő teljesítménymérőkkel kapcsolatos további információkért lásd a ASP.NET Core beépített metrikáit.

Microsoft.AspNetCore.Components mérőóra:

  • aspnetcore.components.navigate: Nyomon követi az alkalmazás útvonalváltozásainak teljes számát.
  • aspnetcore.components.handle_event.duration: A böngészőesemények feldolgozásának időtartamát méri, beleértve az üzleti logikát is.

Microsoft.AspNetCore.Components.Lifecycle mérőóra:

  • aspnetcore.components.update_parameters.duration: Az összetevőparaméterek feldolgozásának időtartamát méri, beleértve az üzleti logikát is.
  • aspnetcore.components.render_diff.duration: Nyomon követi a renderelési kötegek időtartamát.
  • aspnetcore.components.render_diff.size: Nyomon követi a renderelési kötegek méretét.

Microsoft.AspNetCore.Components.Server.Circuits mérőóra:

A kiszolgálóoldali Blazor alkalmazásokban további kapcsolatcsoportspecifikus metrikák a következők:

  • aspnetcore.components.circuit.active: A memóriában jelenleg aktív kapcsolatcsoportok számát jeleníti meg.
  • aspnetcore.components.circuit.connected: Nyomon követi az ügyfelekhez kapcsolt áramkörök számát.
  • aspnetcore.components.circuit.duration: Méri az áramkör élettartamának időtartamát, és megadja a teljes áramkörszámot.

Blazor Nyomkövetés

A következő nyomkövetési tevékenységekről további információt a ASP.NET Core beépített metrikáiban talál.

Az új tevékenységkövetési képességek a tevékenység forrását Microsoft.AspNetCore.Components használják, és a nyomkövetési tevékenységek három fő típusát biztosítják: a kapcsolatcsoportok életciklusát, a navigációt és az eseménykezelést.

A kör életciklusának nyomon követése:

Microsoft.AspNetCore.Components.StartCircuit: Áramkör inicializálásának nyomkövetése a formátummal Circuit {circuitId}.

Címkék:

  • aspnetcore.components.circuit.id: Egyedi kapcsolatcsoport-azonosító.
  • error.type: Kivételtípus teljes neve (nem kötelező)

Linkek:

  • HTTP-nyomkövetés
  • SignalR követés

Használat: Ugyanannak a munkamenetnek/kapcsolatcsoportnak a többi Blazor nyomkövetését HTTP-hez és SignalR környezetekhez csatolja.

Navigációs nyomkövetés:

Microsoft.AspNetCore.Components.Navigate: Az útvonalváltozásokat a formátummal Route {route} -> {componentType}követi nyomon.

Címkék:

  • aspnetcore.components.route: A lap URL-elérési útvonalának mintázata.
  • aspnetcore.components.type: Az Razor összetevő osztályneve.
  • error.type: Kivételtípus teljes neve (nem kötelező).

Linkek:

  • HTTP-nyomkövetés
  • SignalR követés
  • Áramkör nyomvonal

Használat: Mely Blazor oldalakat látogatta meg a munkamenet?

Eseménykezelés nyomkövetése:

Microsoft.AspNetCore.Components.HandleEvent: Az eseménykezelést a formátummal Event {attributeName} -> {componentType}.{methodName}követi nyomon.

Címkék:

  • aspnetcore.components.attribute.name: Az eseményt kiváltó HTML-attribútum neve (például: onClick).
  • code.function.name: A kezelő C# metódusneve.
  • aspnetcore.components.type: Az eseményt fogadó cél C# összetevő teljes neve.
  • error.type: Kivételtípus teljes neve (nem kötelező).

Linkek:

  • Áramkör nyomvonal
  • Útvonalkövetés

Használat:

  • Kattintson arra az összetevőre, amely kivételt okozott, és melyik oldalon?
  • Melyik csatolt kapcsolatcsoportban és milyen HTTP-környezetben történt?