Smarty эталон, кто-нибудь?

Я рассматриваю Smarty как шаблонное решение для своего веб-приложения, и теперь я обеспокоен его производительностью по сравнению с простым PHP.

Сайт Smarty говорит, что это должно быть то же самое, однако я не смог найти никого, кто бы делал реальный сравнительный анализ, чтобы доказать утверждение правильно или неправильно.

Кто-нибудь делал некоторые тесты Smarty против простого PHP? Или может наткнуться на какие-то ресурсы по таким тестам?

Спасибо

13.12.2008 08:15:42
Я могу ошибаться, но Smarty - это «Простой Php», это просто движок шаблонов, написанный на php. Представляется маловероятным , что вы могли бы написать шаблонный движок , который работает быстрее , чем Smarty
andrew 7.02.2011 22:04:58
10 ОТВЕТОВ
РЕШЕНИЕ

Поскольку, в конце концов, Smarty компилирует и кэширует файлы шаблонов в собственный PHP-код, теоретически разницы в производительности нет. Конечно, всегда будет некоторая потеря производительности из-за фрагмента кода Smarty, который нужно интерпретировать каждый раз.

14
13.12.2008 16:25:06

Просто нашел этот очень простой тест - вероятно, не очень важный.

3
13.12.2008 10:05:49
Домен больше не в сети, но вот хорошая замена cedric.emisfr.info/en/2010/03/25/…
TravisO 1.07.2010 19:31:34

Smarty генерирует код PHP для всех своих файлов шаблонов при их первом использовании, при условии, что он настроен правильно, и использует их, когда это возможно, вместо повторного анализа шаблонов.

Я использовал его некоторое время, и это было достаточно быстро, но в конце я поменял его на простые PHP-файлы, потому что это немного ограничивало (слишком много PHP4-измов).

1
13.12.2008 16:31:31

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

1
13.12.2008 18:24:09

Это зависит от того, как вы используете Smarty, потому что поток ваших страниц может измениться

Классический простой PHP-поток:

  • Вывод
  • Обрабатывать данные $ _REQUEST
  • Вывод
  • Обрабатывать запросы к базе данных
  • Вывод
  • Обрабатывать данные $ _REQUEST
  • Вывод
  • ...

Классический Smarty flow:

  • Обрабатывать все данные $ _REQUEST
  • Обрабатывать все запросы к базе данных
  • Вывести все

Если обычный PHP занял 1,0 сек для этой страницы, то страница Smarty также занимает 1,0 сек. НО, если предположить, что вся обработка базы данных и $ _request занимает 0,7 сек. Простой PHP начинает вывод непосредственно, в то время как версия Smarty начинает выводить через 0,7 сек. Поэтому браузер может быстрее загружать таблицы стилей и изображения. Отсутствие выхода также означает, что кнопка «Стоп» не действует.

Однако в Smarty вы можете вызывать функции и методы из шаблона. Задержка медленной части туда, где нужны данные.

1
13.12.2008 20:18:20

Существует падение замены Smarty называется Template Lite , который является гораздо более легким по отношению к размеру файла библиотеки. Тем не менее, я использовал оригинальный Smarty в некоторых ситуациях с чрезвычайно высокой нагрузкой, без необходимости перестановки в этой библиотеке.

0
13.12.2008 20:36:52

Вы также можете использовать новую библиотеку шаблонов, которая похожа на Smarty, которая называется Dwoo.

4
21.12.2008 06:29:24

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

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

В целом, я очень рекомендую Smarty. Вывод дисплея из PHP сделал наш код намного более читабельным и понятным. Вы просто должны быть осторожны с тем, что вставляете в плагины.

0
11.02.2009 16:00:01

Вот еще одно шаблонное решение XSLT. Вот мои тесты для одной из конвертированных мной страниц (это простая страница):

// with smarty (baseline)
    0.014 seconds

// with xsl/xslt-clientside
    0.008 seconds
    42% decrease in server stress

// with xsl/xslt-serverside
// this process would only be done if the users browser doesn't support client-side XSLT
    0.016 seconds
    14% increase in server stress

Это не для всех, но если производительность является вашей главной заботой :)

Кроме того, вы разрешаете клиенту кэшировать ваш шаблон.

Вот пример того, что я делаю (это один из моих сайтов): http://pixao.com

и вот еще один пример этого на более крупном сайте: http://worldofwarcraft.com

пока что мне еще предстоит столкнуться с любыми пробками

2
10.05.2009 04:40:56

Вот эталонный тест движка шаблонов, который тестирует PHP против Smarty и многие другие движки шаблонов http://www.raintpl.com/PHP-Template-Engines-Speed-Test/

  • Для назначения Twig быстрее, он компилирует html-шаблон в классы, поэтому он также быстрее выполняет больше, чем PHP! ИМХО тяжело (много файлов) и усложняет, но очень быстро!

  • Для зацикливания быстрее используется PHP, и вскоре после него появится Rain, который очень прост, мал (1 файл) и быстр.

2
16.01.2011 15:59:55
Попробуйте быть ценным членом SO. Ваша история ответов выглядит как откровенная реклама.
Joris Meys 8.04.2011 09:15:06