---
# System prepended metadata

title: Troubleshooting Performance related issues

---

# [Troubleshooting](https://docs.devexpress.com/Blazor/401608/troubleshooting) Performance related issues

:::info
Можно вдохновиться статьями других комманд:
- [Frameworks](https://docs.devexpress.com/eXpressAppFramework/402148/debugging-testing-and-error-handling/performance/performance-optimization)
- [WF](https://docs.devexpress.com/AspNet/404588/troubleshooting/grid-related-issues/grid-performance)
- [DevExtreme](https://js.devexpress.com/jQuery/Documentation/Guide/UI_Components/DataGrid/Enhance_Performance_on_Large_Datasets/)
- [DevExtreme React - Optimize Performance](https://js.devexpress.com/React/Documentation/Guide/React_Components/Optimize_Performance/)

Или сторонними статьями:
- [ASP.NET Core Blazor performance best practices](https://learn.microsoft.com/en-us/aspnet/core/blazor/performance?view=aspnetcore-8.0)
- [Optimizing Performance in Blazor](https://www.c-sharpcorner.com/article/optimizing-performance-in-blazor/)
:::

## Общая структура

Я бы организовал так:
- Введение
- Советы по поиску причины
- Советы по решению проблем (Best Practice)
- Что делать если эта статья не помогла

## Введение

Пара слов о том, что проблемы с перформансом могут зависить от многих факторов. Хороший список возможных причин описан во Frameworks статье. Тут лучше посоветоваться с более опытным для того чтобы список был исчерпывающим и актуальным. Я выделяю следующие возможные причины:

0. Проблемы локальной машины на которой запускается приложение. 
1. Хранение больших данных в памяти. 
2. Рендер очень тяжелой разметки. У браузеров есть свои ограничения и они начинают тормозить если на странице слишком много элементов
3. Необязательный перерендер
4. Лишние запросы на сервер
5. Медленный ответ от сервера

## Советы по поиску причины
0. Попробовать воспроизвести проблему в другом браузере, на другой ОС, на другом компьютере.
1. Собрать performance profile (Profiler есть в Visual Studio и на клиенте в browser devTools)
2. Исключить влияние 3d-party библиотек. 
3. В блезор есть 2 основных хостинга приложения: Wasm и Server. Попробовать использовать другой и посмотреть есть ли разница
4. Использовать тестовый датасорс вместо реальных данных
    1. Локальный массив/объект вместо сервера или базы данных
    2. Меньший объем данных 
6. Убрать кастомный CSS. 
7. Убрать сложные темплейты
8. Убрать обработчики событий

## Советы по решению проблем 

0. Дать ссылку или переписать оф. статью от Microsoft: https://learn.microsoft.com/en-us/aspnet/core/blazor/performance?view=aspnetcore-8.0
1. Использовать paging, virtual scrolling
2. Не использовать тяжелые элементы где можно обойтись простой разметкой. Например при создании кастомных темплейтов, если нужен статический текст - можно использовать \<span\> вместо DxTextBox, если нужен статический чек бокс можно использовать \<input type="checkbox"\> вместо DxCheckBox. 


## Что делать если эта статья не помогла

- Сделать sample project (Можно воспользоваться нашим [Project Template](https://docs.devexpress.com/Blazor/402179/get-started/blazor-and-wasm/devexpress-template-devexpress-installation), [Локальными демками](https://docs.devexpress.com/Blazor/401058/demos#run-demos-locally) или Examples)
- Открыть тикет в SC, описать проблему, приложить sample project и скриншоты performance profile, описать как воспроизвести проблему.