今天闲出P了,用一台破电脑做了个测试,关于Blitz和Smarty的
因为一直不太满意Smarty缓慢的解析过程,而又垂涎于Blitz那号称超越php include的性能
so,自己做个测试,当然是参照Blitz官方的,只不过我没翻出那么多各种各样的模板引擎
只比较了纯的HTML,PHP原生代码,PHP使用include,Smarty和Blitz
简单说下环境配置吧:XP, XAMPP 1.7.4,因为这个里面的PHP是5.3版本的,而且我下载的Blitz扩展也是5.3版本的
Smarty是在官网上新下的3.0.7,php_blitz.dll是0.6.10
因为只是上述几种东西的相互比较,所以请忽略我这个台式机的低下性能
测试用的代码也很简单,我只贴Blitz和Smarty的吧,PHP原生态的是直接用echo,include文件中的内容也是
这个是tpl内容
<html>
<head><title>{{ $title }}</title></head>
<body>
{{ $body }}
</body>
</html>
这个是Blitz文件的内容
<?php
$T = new Blitz('main.tpl');
$T->set(array('title' => 'test'));
$T->set(array('body' => 'helloworld'));
echo $T->parse();
?>
这个是Smarty文件的内容,其中缓存已经开启
<?php
require('../libs/Smarty.class.php');
$smarty = new Smarty;
$smarty->assign("title","test");
$smarty->assign("body", "helloworld");
$smarty->display('mmmm.tpl');
?>
测试压力就直接用的apache的ab程序: ab -n 5000 -c 30 http://localhost/blitz.php 这样类似的命令
结果上图:
1.纯HTML输出
2.PHP原生态输出
3.PHP使用include输出
4.Blitz
5.Smarty
最后是统计的图表:
破电脑性能低下,也没装什么zend platform那么高端的东西,要不效果应该更明显
这次测试也只是说明问题
但是我翻了半天Blitz的源代码也没发现有处理缓存的(要么就是我没找到-_____,- )
看来需要再写段处理缓存的东西加上应该就完美了,只是Smarty的性能也太低了。。。