После очередной смены хостера из-за повышенной нагрузки решил все-таки разобраться, правда ли, что Shop-script перегружает хостинг, или нет.
Для этого установил простенький скрипт расчета времени генерации страницы.
Берем наш любимый файл /templates/frontend/tmplХХ/index.tpl.html
Сразу после <html> вставляем
Код:
<html>
{php}
$start_time = microtime();
$start_array = explode(" ",$start_time);
$start_time = $start_array[1] + $start_array[0];
{/php}
Далее в самом низу перед </body> вставляем:
Код:
{php}
$end_time = microtime();
$end_array = explode(" ",$end_time);
$end_time = $end_array[1] + $end_array[0];
$time = $end_time - $start_time;
printf("Страница сгенерирована за %f секунд",$time);
{/php}
</body>
</html>
При желании, надпись "Страница сгенерирована за Х секунд" можно оформить, в примере без красивостей.
Сохраняем, перезагружаем главную. У меня получилось больше секунды. Почему?
У меня около ста категорий, в каждой от 3 до 10 подкатегорий. Оформление такое, что подкатегории не выводятся, только главные категории с количеством товаров в скобках в центре главной страницы. Но хоть подкатегории и не выводятся, похоже, запросы к БД все-равно выполняются.
Выполнил все рекомендации в этом топике, помогает, но не сильно.
Подумал, и решил отключить секцию вывода подкатегорий - все-равно у меня они не выводятся.
Для этого в файле
/templates/frontend/tmplХХ/home.tpl.html
удалил код:
Код:
{* show sub categories *}
{assign var="tmp" value=0}
{section name=j loop=$root_categories_subs}
{if $root_categories_subs[j][3] == $root_categories[i][0]}
{if $tmp == 1}|
{else}
{assign var="tmp" value=1}
{/if}
<a href="index.php?categoryID={$root_categories_subs[j][0]}" class=standard>{$root_categories_subs[j][1]}</a>
{/if}
{/section}
Время генерации страницы сократилось с 1.2 до 0.04 секунды. Хостер отметил резкое снижение нагрузки с моего аккаунта.
Я не великий знаток шоп-скрипта, потому вопрос к гуру - чем чревато то, что я натворил, кроме отключения вывода подкатегорий
Пробежался по сайту - вроде все работает, как работало, только по словам хостера резко снизилась нагрузка на сервер.
Повышенная нагрузка идет при генерации страниц типа:
1. "показать все"
2. "Прайс-лист"
3. Если в админке в "Максимальное количество товаров на странице" стоит большое число. Чем меньше - тем быстрее.
4. Галка "Принудительное перекомпиллирование шаблонов Smarty" увеличивает время генерации главной с 0.04 до 0.2 секунд (на моем сайте).
Ну, и для примера, несколько цифр времени генерации:
1. Главная - порядка 0.04 сек.
2. categoryID - от 0.04 до 0.35 сек в зависимости от категории
3. productID - порядка 0.03 сек.
4. Прайс-лист - порядка 0.8 сек.
Рад, если кому помогло