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

expream

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

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

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

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

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

alexhemp

Новичок
expream

Думаю ты тестами разницы не найдешь. Операция filemtime быстрая.
 

WP

^_^
Да, на этом не выиграешь. Если хочешь ускорить Smarty, раздели класс на два подкласса, т.е. выдели только те методы и свойства которые нужны исключительно для компиляции. И не грузи его каждый раз.
 

itprog

Cruftsman
WP
ты бы хоть внимательнее переписывал, смысла в разделении класса компиляции нет, разделять надо базовый класс, и там не два получится
 

WP

^_^
itprog
Что переписывал? Из класса 'Smarty' можно многое разделить. Хм, а на сколько?
 

Alexandre

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