Сегодня занимался оптимизацией сайта (уж очень медленно он клацался).
Заметил особенность
В любом случае выполняется весь код шаблоне, не принимая во внимание возможные ветвления.
Мне кажется, на вынесении в embed-шаблоны части кода, можно добится небольшого увеличения скорости работы.
К примеру
Начальный код
{if 1==1}
{exp:channel:entries channel="channel_name" limit="100"}
{title}
{/exp:channel:entries}
{if:else}
{exp:channel:entries channel="channel_name" limit="150"}
{title}
{/exp:channel:entries}
{/if}
В TEMPLATE DEBUGGING видно что обрабатывался код как для limit=“100” так и для limit=“150”
Средняя скорость выполнения на моих тестовых данных - 0.77 секунды
Конечный код - вынесли часть кода в embed-шаблоны test_if_part1 и test_if_part2
{if 1==1}
{embed="group_name/test_if_part1"}
{if:else}
{embed="group_name/test_if_part2"}
{/if}
В TEMPLATE DEBUGGING видно что обрабатывался только код для limit=“100”
Средняя скорость выполнения на моих тестовых данных - 0.3 секунды
Теперь попробуем оптимизировать вызов exp:channel:entries при помощи disable=“categories|member_data|category_fields|custom_fields|pagination”
Исходный код
{if 1==1}
{exp:channel:entries channel="places" limit="100" disable="categories|member_data|category_fields|custom_fields|pagination"}
{title}
{/exp:channel:entries}
{if:else}
{exp:channel:entries channel="places" limit="150" disable="categories|member_data|category_fields|custom_fields|pagination"}
{title}
{/exp:channel:entries}
{/if}
Средняя скорость 0.11 сек
Конечный код (с выносом обработки в embed-шаблоны)
Средняя скорость 0.07 сек
Небольшое исследование влияния отключения разных возможностей exp:channel:entries показало что наибольший результат в МОЕМ случае это отключение disable=“categories”
В вашем случае возможен другой вариант
Конечный код с disable=“categories” показал в среднем 0.09 сек
В то же время, я где то читал рекомендации не использовать {embed} (т.к. сильно замедляется скорость генерации странички)
Выводы:
если есть ветвление, то вынеся exp:channel:entries с большим limit, можно ускорить работу
если использовать disable, то можно также значительно (до 7 раз в моем случае) ускорить скорость обработки (хотя disable действительно сильно режет возможности exp:channel:entries)