Intereting Posts
Как использовать переменную PHP в JavaScript? Как получить информацию о файле в определенном пути к каталогу, например, тип файла mime и имя файла с помощью функции php? Передавать данные xml в swf-объект Примечание. Неверно сформированное числовое значение, встречающееся в C: \ xampp \ htdocs \ Space \ Find \ index.php в строке 21 Не удалось получить символы с акцентом UTF-8 из Access через PDO_ODBC Отбрасывать тень на текст phpstorm xdebug с проектом symfony2 PHP удалить / исправить модуль не найден или уже загружен предупреждения? Как получить контроллер из плагина контроллера в zendframework 2? PHP: установить значение вложенного массива с помощью переменной в качестве ключа PHP $ эта переменная Преобразование docx в pdf с помощью PHP реализация следующих и задних кнопок для слайд-шоу Используя PHP или JavaScript Facebook SDK, как я могу заставить пользователя войти на мой сайт? Regex ровно n OR m раз

Тест Smarty, кто-нибудь?

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

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

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

благодаря

Solutions Collecting From Web of "Тест Smarty, кто-нибудь?"

Поскольку в итоге 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:

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

Классический поток Smarty:

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

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

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

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

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

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

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