Опять 25 ... Ускорение Smarty

  • Автор темы Автор темы expream
  • Дата начала Дата начала

expream

Новичок
Опять 25 ... Ускорение Smarty

Доброе время суток всем!

Начинаю писать новый сайт, и на этот раз задумался над использованием шаблонизатора, выбор остановил на Smarty. Вроде на скольео я понял он один из самых быстрых (не считая php modules шаблонизаторов) ... На скольлко я понимаю, что шаблоны хранятся в папке, например templates, и смарти "компилирует" их в templates_c и от туда они и исполняются. Получается, что сматри каждый раз при запуске скрипта проверяет не был ли изменён шаблон в templates? так ли это? и если это так, то может быть ктонибудь пробывал отключать это функцию? Зделать напрмер кнопку "rebuild templates" и когда дизайнер сделал изменения в шаблоне.... по нажатию кнопки дириктория templates_c "перекомпилировалась бы" ...

Т.е. изключив проверку каждый раз на изменение шаблона... увелит ли это скорость генерирование странички? или ?

Спасибо. Жду ответов.
Максим.
 
expream

Думаю ты тестами разницы не найдешь. Операция filemtime быстрая.
 
Да, на этом не выиграешь. Если хочешь ускорить Smarty, раздели класс на два подкласса, т.е. выдели только те методы и свойства которые нужны исключительно для компиляции. И не грузи его каждый раз.
 
WP
ты бы хоть внимательнее переписывал, смысла в разделении класса компиляции нет, разделять надо базовый класс, и там не два получится
 
itprog
Что переписывал? Из класса 'Smarty' можно многое разделить. Хм, а на сколько?
 
что шаблоны хранятся в папке, например templates, и смарти "компилирует" их в templates_c и от туда они и исполняются. Получается, что сматри каждый раз при запуске скрипта проверяет не был ли изменён шаблон в templates? так ли это?
да
Т.е. изключив проверку каждый раз на изменение шаблона... увелит ли это скорость генерирование странички?
тут советовали кеширование, присоединяюсь - это мощное ускорение и ускорение не за счет экономии на "проверку каждый раз на изменение шаблона", а за счет вообще отсутствия перегенерации страницы (если страница закеширована, то отдаем ее из кеша не лезя в БД за ее содержимым)..
PHP:
 <?php
$smarty->caching = true;
if(!$smarty->is_cached("index.tpl")) {
    // обращаемся к БД, генерим страницу, назначаем переменные
}
$smarty->display("index.tpl");
?>

но, надо помнить, что кеширование имеет оборотную сторону медали - необходим механизм отслеживания старых кешей и их уничтожения.
 
Сверху