Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Observação
Esta não é a versão mais recente deste artigo. Para a versão atual, consulte a versão .NET 10 deste artigo.
Advertência
Esta versão do ASP.NET Core não é mais suportada. Para obter mais informações, consulte a Política de suporte do .NET e do .NET Core. Para a versão atual, consulte a versão .NET 9 deste artigo.
Blazor é otimizado para alto desempenho na maioria dos cenários realistas de interface do usuário do aplicativo. No entanto, o melhor desempenho depende de os desenvolvedores adotarem os padrões e recursos corretos.
Observação
Os exemplos de código neste nó de artigos adotam tipos de referência anuláveis (NRTs) e análise estática de estado nulo do compilador .NET, que são suportados no ASP.NET Core no .NET 6 ou posterior.
Compilação Antecipada (AOT)
A compilação Ahead-of-Time (AOT) compila o código .NET de um aplicativo Blazor diretamente no WebAssembly nativo para execução direta pelo navegador. Os aplicativos compilados pela AOT resultam em aplicativos maiores que levam mais tempo para serem baixados, mas os aplicativos compilados pela AOT geralmente fornecem um melhor desempenho em tempo de execução, especialmente para aplicativos que executam tarefas com uso intensivo de CPU. Para obter mais informações, consulte ASP.NET Core Blazor WebAssembly ferramentas de construção e compilação antecipada (AOT).
Métricas e rastreamento
As métricas e os recursos de rastreamento ajudam a monitorar e diagnosticar o desempenho do aplicativo, rastrear as interações do usuário e entender o comportamento dos componentes em ambientes de produção.
Configuração
Para habilitar Blazor métricas e rastreamento em seu aplicativo, configure o OpenTelemetry com os seguintes medidores e fontes de atividade no arquivo do aplicativo onde os Program serviços são registrados:
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");
});
Medidores de desempenho
Para obter mais informações sobre os seguintes medidores de desempenho, consulte Métricas internas do ASP.NET Core.
Microsoft.AspNetCore.Components medidor:
-
aspnetcore.components.navigate: Rastreia o número total de alterações de rota no aplicativo. -
aspnetcore.components.handle_event.duration: Mede a duração do processamento de eventos do navegador, incluindo a lógica de negócios.
Microsoft.AspNetCore.Components.Lifecycle medidor:
-
aspnetcore.components.update_parameters.duration: Mede a duração dos parâmetros do componente de processamento, incluindo a lógica de negócios. -
aspnetcore.components.render_diff.duration: Rastreia a duração dos lotes de renderização. -
aspnetcore.components.render_diff.size: Rastreia o tamanho dos lotes de renderização.
Microsoft.AspNetCore.Components.Server.Circuits medidor:
Em aplicações do lado do servidor Blazor, métricas adicionais específicas do circuito incluem:
-
aspnetcore.components.circuit.active: Mostra o número de circuitos ativos atualmente na memória. -
aspnetcore.components.circuit.connected: Rastreia o número de circuitos conectados aos clientes. -
aspnetcore.components.circuit.duration: Mede a duração da vida útil do circuito e fornece a contagem total do circuito.
Blazor rastreio
Para obter mais informações sobre as seguintes atividades de rastreamento, consulte ASP.NET Métricas internas principais.
Os novos recursos de rastreamento de atividades usam a Microsoft.AspNetCore.Components fonte de atividade e fornecem três tipos principais de atividades de rastreamento: ciclo de vida do circuito, navegação e manipulação de eventos.
Rastreamento do ciclo de vida do circuito
Microsoft.AspNetCore.Components.StartCircuit: Rastreia a inicialização do circuito com o formato Circuit {circuitId}.
Etiquetas:
-
aspnetcore.components.circuit.id: Identificador único do circuito. -
error.type: Nome completo do tipo de exceção (opcional)
Hiperligações:
- Rastreamento HTTP
- SignalR Rastreio
Uso: Vincula outros Blazor traços da mesma sessão/circuito a HTTP e SignalR contextos.
Traçado de navegação:
Microsoft.AspNetCore.Components.Navigate: Rastreia as alterações de rota com o formato Route {route} -> {componentType}.
Etiquetas:
-
aspnetcore.components.route: Padrão de caminho de URL da página. -
aspnetcore.components.type: Nome da classe do Razor componente. -
error.type: Nome completo do tipo de exceção (opcional).
Hiperligações:
- Rastreamento HTTP
- SignalR Rastreio
- Traçado do circuito
Utilização: Que Blazor páginas visitou esta sessão?
Rastreamento de manipulação de eventos:
Microsoft.AspNetCore.Components.HandleEvent: Rastreia a manipulação de eventos com o formato Event {attributeName} -> {componentType}.{methodName}.
Etiquetas:
-
aspnetcore.components.attribute.name: Nome do atributo HTML que dispara o evento (exemplo:onClick). -
code.function.name: Nome do método C# do manipulador. -
aspnetcore.components.type: Nome completo do componente C# de destino que recebe o evento. -
error.type: Nome completo do tipo de exceção (opcional).
Hiperligações:
- Traçado do circuito
- Traçado de rota
Usos:
- Clique em qual componente causou exceção e em qual página?
- Em que circuito ligado e com que contexto HTTP aconteceu?