Объясните, плиз, на пальцах механизм торможения Смарти

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

Грубо говоря - изменился шаблон - он при первом обращении перекомпилируется

Можно включить компиляцию при каждой операции - для отладки например ($force_compile = true), можно наоборот, отключить ее вовсе (тогда требуется скомпилировать заранее) - $complie_check = false;

-~{}~ 15.01.07 16:27:

Фанат

Тут подмена понятий - "ОБЪЕКТИВНОЙ РЕАЛЬНОСТИ" как такого не существует, только субъективная - отраженная в собственных ощущениях.

И то что "у всех сматри тормозит" - и есть предмет веры (ну или хочешь - заблуждения) - при чем ты сам об этом и написал в первом посте ("нет причин не верить" - твоя фраза).

Что меня всегда удивляет в жизни - то что на сложные, многоплановые вопросы люди хотят получить конкретные ответы.
 
ну вот это и есть ответ на вопрос "в какой момент он решает перекомпилировать". если вдруг такое может произойти на нагрузке - см третий пункт.
 
на тему нагруженных проектов.
С пол-года назад проектировался блог (свой, писанный с нуля). Первое решение - прикрутить смарти. После написания версии, пригодной для тестов, эти самые тесты показали грустную картину. С force_compile = 0 - 60% времени уходили с момента вызова display до окончания работы этого метода. При этом ab (caching=1) показывал порядка 30 запросов/сек. Справедливости ради - машина AMD Athlon(tm) XP 1600+, eAccelerator on, php 5.1.6. Проект предполагал высокую нагрузку, поэтому смарти отодвинул, и написал свою обертку для шаблонов. Ничего лишнего. Ab родил 120 запросов/сек. По сути разница в коде шаблонов. Говнокод - таки да.
Но для небольших проектов - очень удобно. И быстро.
 
>>пункт интересно, в какой момент он решает перекомпилировать
ИМХО, смарти начинает компиляцию, если нет соответствующего скомпилированного шалбона, или updatetime шаблона больше (изменен позже) updatetime скомпилированного шаблона.

-~{}~ 15.01.07 17:41:

60% времени уходили с момента вызова display до окончания работы этого метода.
очевидно, это время уходит на компиляцию. По идеи, скомпилированный шаблон должен показываться быстро.
 
очевидно, это время уходит на компиляцию. По идеи, скомпилированный шаблон должен показываться быстро.
Ни разу не очевидно. force_compile = 0. При перекомпиляции временем работы до вызова display можно пренебречь ;)
Немного поясню, что я хотел сказать. Выполение шаблона смарти занимало 60% времени выполнения кода (100% - время от стартовой точки до начала вывода). Именно выполнение. А при включенном кеше (нет компиляции, нет выполнения) - я получал 30 в сек. Своя реализация кеширования (очень схожая со смарти) выдала в 4 раза больше. Но в это время входило еще константное время выполнения "логики" (все, что до шаблонизатора). Наглядная демонстрация лишних движений как в генерируемом шаблоне, так и в самом классе

-~{}~ 15.01.07 16:56:

смарти начинает компиляцию, если нет соответствующего скомпилированного шалбона, или updatetime шаблона больше (изменен позже) updatetime скомпилированного шаблона.
Конечно, еще и вложенные шаблоны учитываются
 
smarty - типичный пример bloatware.
постоянно тормозит не единоразовая компиляция, а ее результат - уже упомянутый говнокод, обеспечивающий работу всяких конфигов, модификаторов и прочих бирюлек.
 
Автор оригинала: itprog
crocodile2u
замечания надо было на форум smarty сразу, там разработчики все реквесты читают и отвечают, разжевали бы почему так и может бы пофиксили
На форум смарти я об этом писал. Тот, кто мне отвечал, обещал ознакомиться с WACT и, возможно, принять меры по инклюдам и другим вопросам - но в новой версии смарти. А я, честно говоря, даже и не в курсе сейчас, вышла эта новая версия или нет.
 
Это не бирюльки, а полезный функционал, и не из-за него вовсе.
 
замечания надо было на форум smarty сразу, там разработчики все реквесты читают и отвечают, разжевали бы почему так и может бы пофиксили
бесполезно, у меня была проблема (баг) с кешированием в смарти, я писал на их форум, вопрос остался без ответа.
 
Сверху