По возможности буду размещать интересные записи в своем блоге 

Как жадная загрузка в Yii2 помогла мне оптимизировать рендер тяжелой страницы
Запись от long399 размещена 12.10.2023 в 10:00
Показов 1559
Комментарии 0
|
Столкнулся на работе с одним разделом сайта, в котором выводится несколько огромнейших таблиц. Использовать пагинацию там нельзя, так как данный раздел проверяется Рособрнадзором (выполняется автоматический мониторинг специальных тегов разметки), и все данные должны быть отображены на одной странице. Этих данных очень много, количество запросов к БД огромное. Имеется кеширование контента страницы, но несмотря на это, все равно очень неприятно ждать рендер страницы, когда время жизни прежнего кеша заканчивается. Приведу пример части данных, которые выводятся в этом злополучном разделе сайта. Речь пойдет об образовательных программах. Образовательные программы имеют связи с дисциплинами.
Помогла жадная загрузка. Модели образовательных программ я начал получать из БД сразу с необходимыми связями (вложенными) и это значительно ускорило рендер информации в данном разделе.
Т.е. мы получим из БД образовательные программы, для каждой из которых при этом будет получен список дисциплин. Для дисциплин, в свою очередь, будут получены файлы, для файлов - информация об ЭЦП, для информации об ЭЦП - подписант. Еще с помощью профилировщика я обнаружил в некоторых моделях неоптимальное использование отношений. Например:
При работе пользовался профилировщиком xhprof, который мне здорово помог найти узкие места и стандартной debug-панелью Yii2. | ||||||||||||||||||||||||||||||||||||||||
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Всего комментариев 0
Комментарии


