Заметка
Доступ к этой странице требует авторизации. Вы можете попробовать войти в систему или изменить каталог.
Доступ к этой странице требует авторизации. Вы можете попробовать сменить директорию.
Замечание
Это не последняя версия этой статьи. В текущей версии см. версию .NET 10 этой статьи.
Предупреждение
Эта версия ASP.NET Core больше не поддерживается. Для получения дополнительной информации см. Политику поддержки .NET и .NET Core. Для текущей версии см. версию .NET 9 этой статьи.
Среда Blazor оптимизирована для обеспечения высокой производительности в наиболее реалистичных сценариях пользовательского интерфейса приложения. Тем не менее итоговая производительность зависит от того, насколько эффективно разработчики используют соответствующие шаблоны и функции.
Замечание
Примеры кода в этом узле статей используют nullable reference types (NRTs) и статический анализ состояния на NULL компилятора .NET, которые поддерживаются в ASP.NET Core в .NET 6 или более поздней версии.
Компиляция "Ahead-of-time" (AOT)
Заранее скомпилированная компиляция (AOT) компилирует Blazor код .NET приложения непосредственно в собственный WebAssembly для прямого выполнения браузером. Приложения, скомпилированные с использованием AOT, приводят к увеличению размера приложений, которые загружаются дольше, но такие приложения обычно обеспечивают лучшую производительность во время выполнения, особенно для приложений, выполняющих ресурсоемкие задачи. Дополнительные сведения см. в статье ASP.NET Средства сборки Core Blazor WebAssembly и компиляция с заранеей компиляцией (AOT).
Метрики и трассировка
Метрики и возможности трассировки помогают отслеживать производительность приложения, отслеживать взаимодействие пользователей и анализировать поведение компонентов в рабочих средах.
Конфигурация
Чтобы включить Blazor метрики и трассировку в приложении, настройте OpenTelemetry со следующими источниками измерения и активности в файле приложения Program , где зарегистрированы службы:
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");
});
Счетчики производительности
Дополнительные сведения о следующих счетчиках производительности см. в разделе ASP.NET Встроенные метрики Core.
Microsoft.AspNetCore.Components метр:
-
aspnetcore.components.navigate: отслеживает общее количество изменений маршрута в приложении. -
aspnetcore.components.handle_event.duration: измеряет длительность обработки событий браузера, включая бизнес-логику.
Microsoft.AspNetCore.Components.Lifecycle метр:
-
aspnetcore.components.update_parameters.duration: измеряет длительность параметров компонента обработки, включая бизнес-логику. -
aspnetcore.components.render_diff.duration: отслеживает длительность пакетов отрисовки. -
aspnetcore.components.render_diff.size: отслеживает размер пакетов обработки.
Microsoft.AspNetCore.Components.Server.Circuits метр:
В серверных Blazor приложениях дополнительные метрики, относящиеся к каналу, включают:
-
aspnetcore.components.circuit.active: показывает количество активных каналов в памяти. -
aspnetcore.components.circuit.connected: отслеживает количество каналов, подключенных к клиентам. -
aspnetcore.components.circuit.duration: измеряет время существования канала и предоставляет общее число каналов.
Blazor трассировка
Дополнительные сведения о следующих действиях трассировки см. в разделе встроенные метрики ASP.NET Core.
Новые возможности отслеживания активности используют Microsoft.AspNetCore.Components источник активности и предоставляют три основных типа отслеживания: жизненный цикл схемы, навигация и обработка событий.
Трассировка жизненного цикла схемы
Microsoft.AspNetCore.Components.StartCircuit: отслеживает инициализацию схемы с форматом Circuit {circuitId}.
Теги:
-
aspnetcore.components.circuit.id: уникальный идентификатор канала. -
error.type: полное имя типа исключения (необязательно)
Ссылки:
- Трассировка HTTP
- SignalR трассировка
Использование: связывает другие Blazor трассировки одного сеанса или канала с HTTP и SignalR контекстами.
Трассировка навигации:
Microsoft.AspNetCore.Components.Navigate: отслеживает изменения маршрута с форматом Route {route} -> {componentType}.
Теги:
-
aspnetcore.components.route: шаблон пути URL-адреса страницы. -
aspnetcore.components.type: имя Razor класса компонента. -
error.type: полное имя типа исключения (необязательно).
Ссылки:
- Трассировка HTTP
- SignalR трассировка
- След цепи
Использование: какие Blazor страницы этого сеанса посетили?
Трассировка обработки событий:
Microsoft.AspNetCore.Components.HandleEvent: трассировка обработки событий в формате Event {attributeName} -> {componentType}.{methodName}.
Теги:
-
aspnetcore.components.attribute.name: имя HTML-атрибута, активировающего событие (например:onClick). -
code.function.name: имя метода C# обработчика. -
aspnetcore.components.type: полное имя целевого компонента C#, получающего событие. -
error.type: полное имя типа исключения (необязательно).
Ссылки:
- След цепи
- Трассировка маршрута
Использования:
- Нажмите, чтобы узнать, какой компонент вызвал исключение и на какой именно странице.
- В каком связанном канале и с каким контекстом HTTP он произошел?