Я рассматриваю Smarty как решение для веб-приложений для шаблонов, и теперь я заинтересован в его производительности против простого PHP.
Сайт Smarty говорит, что он должен быть одним и тем же, однако я не смог найти никого, кто бы делал настоящий бенчмаркинг, чтобы доказать правильность или неправильное утверждение.
Кто-нибудь сделал некоторый бенчмаркинг Smarty против простого PHP? Или, может быть, столкнуться с некоторыми ресурсами на таких тестах?
благодаря
Поскольку в итоге Smarty компилирует и кэширует файлы шаблонов на собственный PHP-код, теоретической разницы в производительности нет. Конечно, всегда будет какая-то потеря производительности из-за куска Smarty-кода, который нужно интерпретировать каждый раз.
Вы также можете захотеть взять новую библиотеку шаблонов, похожую на Smarty, называемую Dwoo
Просто нашел этот очень простой ориентир – возможно, не очень значительный.
вот еще одно шаблонное решение 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
пока я еще не столкнулся с показом проб
Здесь тестовый тест шаблона, который тестирует PHP vs Smarty и многие другие шаблонные механизмы http://www.raintpl.com/PHP-Template-Engines-Speed-Test/
Для назначения Twig быстрее, он компилирует html-шаблон для классов, поэтому он также быстрее выполняет больше, чем PHP! ИМХО тяжело (много файлов) и усложняет, но очень быстро!
Для циклизации быстрее применяется PHP, и вскоре после этого есть Rain, который очень прост, маленький (1 файл) и быстрый.
Smarty генерирует PHP-код для всех его файлов шаблонов, когда они впервые используются, при условии, что он настроен правильно, и использует их, когда это возможно, вместо синтаксического разбора шаблонов.
Я использовал его некоторое время, и это было достаточно быстро, но в конце я поменял его на простые PHP-файлы, потому что он был немного ограничен (слишком много PHP4-isms).
Сам Smarty – довольно большая библиотека … Если вы собираетесь использовать Smarty, я предлагаю вам использовать APC для кэширования скомпилированной версии .. Это компенсирует довольно большой размер библиотеки Smarty …
Это зависит от того, как вы используете Smarty, потому что поток ваших страниц может измениться
Классический простой поток PHP:
Классический поток Smarty:
Если простой PHP занял 1,0 сек для этой страницы, страница Smarty также занимает 1,0 сек. НО, если мы предположим, что вся база данных и обработка $ _request обрабатываются 0,7 секунды. Простой PHP запускает вывод напрямую, когда версия Smarty начинает выводиться через 0,7 секунды. Поэтому браузер может быстрее загружать стили и изображения. Отсутствие выхода также означает, что кнопка «Стоп» не действует.
Однако в Smarty вы можете вызывать функции и методы из шаблона. Откладывание медленной части туда, где необходимы данные.
Существует замена замены Smarty под названием Template Lite, которая намного более легка в отношении размера файла библиотеки. Тем не менее, я использовал оригинальный Smarty в некоторых ситуациях с чрезвычайно высокой нагрузкой, не требуя обмена в этой библиотеке.
Основываясь на моем собственном опыте и неофициальных тестах, Smarty сам по себе не вызывает каких-либо серьезных сокращений производительности. Однако, когда вы начинаете писать пользовательские плагины, все идет вниз.
Шаблон Smarty скомпилирован и кэшируется как PHP, но пользовательский плагин всегда загружается и выполняется во время выполнения и всегда медленнее, чем запуск того же кода в простом старом PHP-файле. Вы не увидите этого слишком много с помощью настраиваемого плагина форматирования строки, но вы обязательно увидите его при выполнении запросов к базе данных в плагине.
В целом, я очень рекомендую Smarty. Получение отображения из PHP сделало наш код более читабельным и поддерживаемым. Вам просто нужно убедиться, что вы внимательно относитесь к тому, что вы вкладываете в плагины.