スマーティーvs. Twig:パフォーマンス

Smartyは、PHP用の最も古いテンプレートエンジンの1つです。 PHPでプログラミングする場合-おそらく、それを使用する必要がありました。 2010年に、このテンプレートエンジンの3番目のバージョンがリリースされました。 Smarty 3は、PHP5を積極的に使用してゼロから作成されました。 これに加えて、Smartyは更新された構文と、 継承サンドボックスなどを含む最新の機能を受け取りました。

Twigは、Symfony開発者の若いテンプレートエンジンです。 著者は、高速で機能的なテンプレートエンジンとして位置付けています。 機能に関しては、Smarty 3とほぼ同じです。Twigの構文はわずかに異なり、高いパフォーマンスが宣言されています。 チェックしてみて?



テスト中



テスト中、処理時間が顕著になるように、十分に複雑なテンプレートを意図的に使用します。 実際、今回は評価を行い、そのために適切なスクリプトを準備します。



Smartyのコードは非常に簡単です。

$data = json_decode(file_get_contents('data.json'), true);
require('smarty/Smarty.class.php');
$smarty = new Smarty();
$smarty->compile_check = false;
$start = microtime(true);
$smarty->assign($data);
$smarty->fetch('demo.tpl');
echo microtime(true)-$start;

      
      





Twig :

$data = json_decode(file_get_contents('data.json'), true);
require('twig/Autoloader.php');
Twig_Autoloader::register();
$loader = new Twig_Loader_Filesystem('templates');
$twig = new Twig_Environment($loader, array(
	'cache' => 'templates_c',
	'autoescape' => false,
	'auto_reload' => false,
));
$start = microtime(true);
$template = $twig->loadTemplate('demo.tpl');
$template->render($data);
echo microtime(true)-$start;

      
      





: , .





— . . , , . - . — . , 10000 .



Smarty:

{$var0} {$var1} {$var2} {$var3} {$var4} ...
      
      





Twig:

{{ var0 }} {{ var1 }} {{ var2 }} {{ var3 }} {{ var4 }} ...
      
      





:

Smarty 3.1.1 16.320 . 0.058 .
Twig 1.2.0 9.757 . 0.083 .
. , . Smarty Twig. , , , . Smarty ≈30% .





- foreach. , 10 1000 .



Smarty:

{foreach $array as $item}
{$item.id} {$item.title} {$item.var1} {$item.var2} {$item.var3} {$item.var4} {$item.var5} {$item.var6} {$item.var5} {$item.var6} 
{/foreach}
      
      





Twig:

{% for item in array %}
{{ item.id }} {{ item.title }} {{ item.var1 }} {{ item.var2 }} {{ item.var3 }} {{ item.var4 }} {{ item.var5 }} {{ item.var6 }} {{ item.var5 }} {{ item.var6 }} 
{% endfor %}
      
      





:

Smarty 3.1.1 0.065 . 0.009 .
Twig 1.2.0 0.131 . 0.082 .
: Smarty 10 , Twig! , + Smarty Twig. , Smarty Twig, , .





— . - :) , Smarty Twig. 500 , 500 , , 500 . .



:

Smarty 3.1.1 1.329 . 0.002 .
Twig 1.2.0 2.641 . 0.121 .
Smarty 60 . , , . Smarty , . ! Twig , .





: Smarty Twig. , .

. Pentium Dual-Core T4200 (2 GHz), 3GB RAM — . PHP — 5.3. , Smarty Twig , .



All Articles