Как решать проблемы оптимизации быстродействия falcon приложения
Как прорабатывать ошибки замедления системы
В случае если ваше приложение работает корректно, но иногда возникают затупы приложения, попробуйте следующий порядок действий
1. смотрим as_perf
Процедура показывает узкие места по памяти, по процессору, по быстродействию, блокировки. Для работы процедуры должны быть права на трассировку.
2. смотрим as_trace
Смотрим в первую очередь ошибки (code=exception).
Также смотрим и другие типы записей. Отслеживаем частоту создания записей (может быть так, что, например, код tg из-за ошибки работы с телеграм создает по 5 записей в 1 секунду при обращении к серверу). Смотрим прирост записей за сегодня, вчера и общее количество записей по типам.
select code, count(*) totalCount,
(select count(*) from as_trace t3 where t3.code=t1.code and cast(created as date) = cast(dateadd(day, -1, getdate()) as date) ) yesterday,
(select count(*) from as_trace t2 where t2.code=t1.code and cast(created as date) = cast(getdate() as date) ) today
from as_trace t1
group by code
3. Смотрим Event Viewer на сервере. В нем могут быть системные ошибки, которые не попадают в базу.
4. Ручная локализация проблемы
Делаем проход по основным страницам кабинета. Наша задача - найти страницу, после которой начинаются замедления. Дело может быть либо в sql самой странице, либо в том, что страница генерирует кучу сниппетов компонентов, которые затем массово инициализируются (например, если в строку таблицы вывести сниппет формы и поставить pagesize=100. В результате будет 100 параллельных запросов на сервер, что плохо).
Если место найдено - пробуем отключить все в проблемном компоненте и оцениваем работу системы без него. Если все хорошо, то проблема найдена и дальше постепенно добавляем в компоненте различные реализованные возможности, которые мы ранее закомментировали (сложные фильтрации, сортировки, вывод сниппетов компонентов)
Частые возможные проблемы
- много однотипных запросов с каждой строки таблицы. Смотрите в консоли браузера какие запросы отправляются - если их очень много и они непрерывным потоком идут долго - вероятно ваша страница допускает множество подгружаемых элементов (форм) на каждую выводимую строку таблицы. Обновление Июнь 2021. Внедрили код отслеживания таких дублей запросов dblreq в as_trace
- плохой sql - оптимизируйте плохие запросы. Найти их можно через as_perf или через мониторинг выполняющихся запросов через SQL Profiler Express.
- проблема с телеграм или другим внешним вызовом (уведомления). Проверьте, что нет ошибок и уберите токен телеграма в web.config
- тяжелые периодические sync процедуры. Не делайте очень тяжелых процедур каждые N секунд. Это будет постоянно грузить систему.
- множественная ошибка почты. Проверьте, что при отправке почты не возникает исключений и она корректно отправляется через тестовую форму в панели управления.
- плохие запросы select к as_trace (и к другим большим таблицам). Находим самые большие таблицы в БД и анализируем запросы к ним.
Google поиск по нашей документации
- Руководства
- Основа Falcon Space
- Основные компоненты
- Возможности
- Коммуникация с пользователем
- Дизайн, стилизация
- API, Интеграции
- Каталоги
- Навигация
- Документы
- Дополнительные компоненты
- Продвижение, SEO
- Системные моменты
- HOWTO
- HOWTO Таблицы
- HOWTO Формы
- Работа с SQL
- HOWTO JS
- HOWTO Верстка
- Решение проблем Решение проблем. Нюанс с правильными select в хранимых процедурах (Проблема лишнего select в запросах GetItems) Не используйте системные названия переменных username, langID Не грузится файл через менеджер ресурсов Показывается неактуальное содержимое хранимой процедуры в программе. Переименование хранимых процедур Что делать, когда есть непонятная ошибка? Распространенные ошибки в Falcon Space Как решать проблемы оптимизации быстродействия falcon приложения Как решить проблему с почтовыми фильтрами SPAM (СПАМ) Спецсимволы на странице выводятся как знаки вопроса Нет доступных сокетов. Решение проблемы с 6+ вкладками в браузере Файлы загружаются на сервер, но при скачивании выходит ошибка 404.3 (загрузка ODT, Проблема с MIME типами) Не выводятся картинки на сайте (401, 403 ошибка при загрузке картинок)
Falcon Space
Это снижение стоимости владения
за счет меньшего количества людей для поддержки и узкого стека разработки. Про снижение стоимости владения продуктом
Это быстрое внесение изменений
по ходу эксплуатации программы. Как создается функционал на платформе
Это простой удобный интерфейс
адаптация под мобильные устройства. Про юзабилити платформы