Я оптимизировал сложный шаблон ExpressionEngine, насколько мне известно, и я все еще стремлюсь получить время рендеринга менее 1 секунды, независимо от того, нужно ли мне внести корректировки на уровне приложения или на уровне сервера.
Рассматриваемая страница представляет собой сетку из 195 проектов, каждый из которых имеет несколько отношений «один ко многим» (клиент, поставщик, офис и т. д.), которые на самом деле отображаются и фильтруются. Эти отношения поддерживаются Playa.
без кеша: 16,0904 секунды, 50,11 МБ, 5264 запроса
после кэширования на уровне приложения: 2,0793 секунды, 28,37 МБ, 476 запросов
Падение в значительной степени является результатом кэширования шаблонов EE, кэширования тегов и параметров «отключения» канала согласно этой статье об оптимизации EE Wiki< /а>.
Все это происходит на сервере MediaTemple DV4 (LAMP) с 512 МБ памяти, который, я думаю, будет уничтожен с такой скоростью. Трафик рабочего сайта составляет ~4 тыс. просмотров страниц в день.
Единственная идея, которая у меня была до сих пор, — загружать только рекомендуемые элементы и асинхронно сохранять (большую, изначально скрытую) часть контента. Единственная причина, по которой мне не нравится эта идея, — потенциальная опасность для SEO. У каждого проекта есть страница сведений, так что это может не быть проблемой, но кажется, что это вся полезная информация, которую нужно проиндексировать.
Существуют ли безопасные способы, не взламывая ядро ExpressionEngine, снизить минимальное время рендеринга страницы до менее секунды? Я просто настроил себя на неудачу?