Quicky 0.2

WP

^_^
> Можно поподробнее про скорость и память? А то без указания предполагаемого механизма инкапсуляции выглядит не очень информативно.
Копирование _tpl_vars.
> А вы скорость считали? А то у меня получается одинаковая со смарти
Это говорит о выключенном режиме inline-includes, не использовании section и т.д.
 

korchasa

LIMB infected
Забираю свои слова назад, он быстрее. Чуть позже выложу результаты

-~{}~ 22.01.08 20:00:

Автор оригинала: WP
> Можно поподробнее про скорость и память? А то без указания предполагаемого механизма инкапсуляции выглядит не очень информативно.
Копирование _tpl_vars.
При чем здесь копирование? Я об инкапсуляции говорил.
UPG: Спрошу по другому. Как предполагалось определять контекст переменной шаблона? И как переменные разных шаблонов должны защищаться друг от друга?

Результаты получились следующие:
smarty (с инклудами) 830
smarty (одним файлом) 1100
quicky (с инклудами) 1120
quicky (одним файлом) 1120
Циферки - количество страниц в минуту. Снималось Через ab

Кеширование - APC. 5 шаблонов (основной контент, начало страницы, конец страницы, рекламное место, новость), 2 секции. Структура и данные взяты из lebowski.

ЗЫ: Про макро мы культурно промолчим, мы ведь не его обсуждаем ;)
 

WP

^_^
> UPG: Спрошу по другому. Как предполагалось определять контекст переменной шаблона? И как переменные разных шаблонов должны защищаться друг от друга?
В смарти в начале исполнения шаблона область переменных копируется, а в конце восстанавливается из копии.
 

fixxxer

К.О.
Партнер клуба
кстати, о бенчмарках. могу поздравить, производительность квики на lebowski-bench (я тупо поменял смарти на квики, благо апи совместимо) практически равна тесту blitz (отставание в пределах погрешности измерений). но blitz-ctx-arr конечно быстрее :) но в любом случае, для компилирующего php-движка это результат великолепный.
 

WP

^_^
fixxxer
Дай, пожалуйста, ссылку на сорцы. Я включу оптимизацию, для интереса.

-~{}~ 22.01.08 23:35:

Кстати, какая версия участвовала в бенчмарке?
 

fixxxer

К.О.
Партнер клуба
нету, я ж говорю - взял папку smarty, положил туда quicky и в main.php поменял 3 строчки =)

-~{}~ 23.01.08 00:18:

PHP:
%diff -u smarty/main.php quicky/main.php 
--- smarty/main.php     Sat Feb 10 06:57:59 2007
+++ quicky/main.php     Tue Jan 22 22:30:27 2008
@@ -1,13 +1,12 @@
 <?
-
 include('../data.inc');
-include('Smarty/libs/Smarty.class.php');
+include('quicky/Quicky.class.php');
 
-$tpl = new Smarty();
+$tpl = new Quicky();
 
 $tpl->template_dir = './';
 $tpl->compile_dir = './t_cache';
-$tpl->compile_check = true;
+//$tpl->compile_check = true;
 //$tpl->compile_check = false;
 

fixxxer

К.О.
Партнер клуба
то ли сервак загружен, то ли канал на россию забит... в общем, часа через 2 видимо скачается ;)
 

fixxxer

К.О.
Партнер клуба
прогнал, разница совершенно непринципиальная, совсем чуточку быстрее
 

WP

^_^
Отлично. Скомпилированный код оптимален (т.е. идентичен php-native) за исключением совсем маленького лага $var.
Базовый класс тоже практически оптимален.

fixxxer
Скажи, а ты прогонял тесты всех экземпляров? Было бы интересно глянуть сравнительную таблицу, как раз пишу статейку насчет трюков производительности.
 

fixxxer

К.О.
Партнер клуба
php-mess 807
blitz-ctx-arr 643
blitz-ctx 618
quicky-opt 482
blitz 480
quicky 479
php-includes 468
smarty 447

цифра - rps, запускалось все (ab как писал выше) 1 раз так что погрешности имеют место быть
 

WP

^_^
Спасибо. Постараюсь состряпать более-менее реальный тест, т.к. тут на загрузку класса уходит время, а в примере с более обширным кодом это будет незаметно.
 

korchasa

LIMB infected
Автор оригинала: WP
Спасибо. Постараюсь состряпать более-менее реальный тест, т.к. тут на загрузку класса уходит время, а в примере с более обширным кодом это будет незаметно.
Как вариант - можно генерировать много шаблонов внутри одного скрипта, а шаблоны генерировать до замера времени.

fixxxer
А если не секрет, то почему именно eAccelerator?
 

fixxxer

К.О.
Партнер клуба
ну тогда надо и как минимум для smarty, blitz и pure-php аналогичные тесты
ибо тест прежде всего сравнительный

-~{}~ 23.01.08 02:26:

korchasa
ну потому что он на этой железке стоит. на самом деле единственная из имеющихся в распоряжении которая не под нагрузкой, там 1цпу потому и rps не высокие.

вообще разницы в производительности между apc и eA не заметил, но в основном сейчас пользуюсь apc по причине большего доверия разработчикам ;)
 

korchasa

LIMB infected
Автор оригинала: fixxxer
ну тогда надо и как минимум для smarty, blitz и pure-php аналогичные тесты
ибо тест прежде всего сравнительный
Ну там правки не большие. Например копирование шаблонов в отдельные директории. А потом переключение между ними. Для директорий с скомпилированными шаблонами, конечно тоже самое.

вообще разницы в производительности между apc и eA не заметил, но в основном сейчас пользуюсь apc по причине большего доверия разработчикам ;)
Ну вот, и тут самому тестировать :)
Только как...

-~{}~ 23.01.08 02:32:

хотя...jMeter + план
 
Сверху