Есть большое меню - 230 элементов, сделано из словаря таксономии с помощью taxonomy menu. Оно выведено блоком + стоит модуль dhtml menu.
От этого сайт грузится достаточно долго. Devel показывает от 4 до 5 секунд. Если убираю блок с меню, то 0.5 - 1 сек.
Подскажите варианты решения этой проблемы, как ускорить работу сайта с таким большим меню. Стандартное кеширование не помогает...
Комментарии
Ну так сначала разобраться на что время уходит, на БД или рендеринг этой менюхи
Devel это выдает:
Executed 1175 queries in 629.2 ms. Page execution time was 4430.6 ms. Memory used at: devel_boot()=1.34 MB, devel_shutdown()=35.75 MB, PHP peak=41.75 MB.
Если блок с менюшкой убрать, то пишет следующее:
Executed 237 queries in 141.37 ms. Page execution time was 885.47 ms. Memory used at: devel_boot()=1.34 MB, devel_shutdown()=27.47 MB, PHP peak=33.25 MB.
Если у вас целых 230 (!) пунктов в меню, значит что-то у вас пошло не так уже на этапе планирования вашего сайта. Столько пунктов меню пользователю просто не нужно. Ну если уж вы любите есть кактусы, то выкиньте taxonomy menu и смотрите в сторону taxonomy_get_tree (https://api.drupal.org/api/drupal/modules%21taxonomy%21taxonomy.module/f...). Будет намного меньше запросов к базе.
Полностью согласен. Если это не ваш сайт попытайтесь убедить заказчика хотя бы разбить это меню на подсекции и выводить одну подсекцию на раздел.
кеширование не может не помогать, если оно действительно кешируется
если стандартное не срабатывает, делайте сами cache set cache get
После прогрева видно, что кеширование работает.
Но его почему-то это не устраивает.
Решил с помощью модуля TMB