Умный эталон, кто-нибудь? - PullRequest
       27

Умный эталон, кто-нибудь?

8 голосов
/ 13 декабря 2008

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

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

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

Спасибо

Ответы [ 10 ]

14 голосов
/ 13 декабря 2008

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

4 голосов
/ 21 декабря 2008

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

3 голосов
/ 13 декабря 2008

Только что нашел этот очень простой тест - вероятно, не очень значительный.

2 голосов
/ 16 января 2011

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

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

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

2 голосов
/ 10 мая 2009

вот еще одно шаблонное решение 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

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

1 голос
/ 13 декабря 2008

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

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

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

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

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

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

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

1 голос
/ 13 декабря 2008

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

1 голос
/ 13 декабря 2008

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

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

0 голосов
/ 11 февраля 2009

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

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

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

0 голосов
/ 13 декабря 2008

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

...