Увеличение производительности с помощью Smarty + Caching? - PullRequest
2 голосов
/ 17 декабря 2009

Я собираюсь начать использовать codeigniter, но так как он предлагает только кэшировать все или ничего (что не будет работать, потому что у меня есть логины и другие области, которые нельзя кэшировать), мне было интересно, будет ли это хорошей идеей используйте Smarty.

Единственное, что меня беспокоит в этом вопросе, это скорость. (Нет да / нет умный общий вопрос.)

Мой вопрос: CodeIgniter с некоторыми запросами базы данных (блог, загрузка данных для страниц из базы данных и т. Д.)

против

CodeIgniter + то же самое db + smarty + частичное кэширование (и, конечно, если smarty-> is_cached (.tpl) не делает никаких запросов db)

Что быстро, что я должен использовать. Есть какие-нибудь умные бенчмарки, которых я не видел? Как вы думаете, начиная с количества запросов к базе данных, smarty улучшает производительность, заметно, учитывая, что вам также нужно загрузить библиотеку smarty?

Заранее спасибо.

Ответы [ 3 ]

3 голосов
/ 17 декабря 2009

Преждевременная оптимизация - корень всего зла . Я бы посоветовал не беспокоиться о кешировании, если ваше приложение не выполнено. Затем посмотрите, как он работает, профилируя его с помощью xdebug или Zend_Debugger и выполните несколько нагрузочных тестов с помощью ab. Используйте кэш кода операции, если можете.

Если вы считаете, что приложение работает слишком медленно, подумайте о кэшировании страниц / частичных файлов. Вы не хотите кеширования ради кеширования, но чтобы найти и устранить узкие места. Если вы чувствуете себя комфортно с Smarty и хотите использовать его в качестве движка шаблонов, используйте его. Если вам не нужен шаблонизатор, вы также можете использовать Zend_Cache с APC или memcached для кэширования.

1 голос
/ 17 декабря 2009

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

0 голосов
/ 17 декабря 2009

Почему бы не реализовать свой собственный метод кэширования? Это не так сложно.

Я использую Smarty и CodeIgniter в разных проектах. Они оба очень хорошие библиотеки, но я никогда не чувствовал необходимости их объединять.

Метод кэширования может использовать перехватчики CI: pre_system, чтобы увидеть, если кеширована целая страница, post_controller для перехвата вызовов представлений и ... просто сканирования руководства пользователя CI. Существует ловушка 'cache_override' . Я полагаю, вы могли бы использовать это тоже.

...