Умный тест, кто-нибудь?

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

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

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

Спасибо

Возможно, я ошибаюсь, но Smarty - это «Plain Php», это просто движок шаблонов, написанный на php. Кажется маловероятным, что вы сможете написать шаблонизатор, который будет быстрее, чем smarty.

andrew 08.02.2011 01:04
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
8
1
5 930
10
Перейти к ответу Данный вопрос помечен как решенный

Ответы 10

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

Домен больше не в сети, но вот хорошая замена cedric.emisfr.info/en/2010/03/25/…

TravisO 01.07.2010 23:31
Ответ принят как подходящий

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

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

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

Сам 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 сам по себе не вызывает значительного снижения производительности. Однако, когда вы начинаете писать собственные плагины, дела идут под откос.

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

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

вот еще одно решение для создания шаблонов 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 против Smarty и многих других движков шаблонов http://www.raintpl.com/PHP-Template-Engines-Speed-Test/

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

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

Постарайтесь стать ценным членом SO. История ваших ответов действительно похожа на откровенную рекламу.

Joris Meys 08.04.2011 13:15

Другие вопросы по теме