Archive for the 'Smarty' Category

smarty的foreach和section的性能比较

六月 26th, 2006 by xLight

test_foreach.inc.tpl:

 {foreach from=$loop item=item}{/foreach}   

ok!

test_section.inc.tpl:

 {section loop=$loop name=item}{/section}   

ok!

test.php //主要部分

$tpl  = new smarty;   

$data = array();
for($i=0;$iassign_by_ref(’loop’,$data);
$t=array();

$t[0] = time()+microtime(true);
$tpl->display(”test.inc.tpl”);
$t[1] = time()+microtime(true);
echo’foreach loop 100000 times:’;echo $t[1] - $t[0];echo”;

$t[0] = time()+microtime(true);
$tpl->display(”test_section.inc.tpl”);
$t[1] = time()+microtime(true);
echo’section loop 100000 times:’;echo $t[1] - $t[0];echo”;

 

其实,从两个function的功能上就可以明显的区分出哪一个性能好一些,而且看一看smarty编译后的两个模板文件的代码量差别吧! 非常说明问题的!

 

让我们来看一下,测试程序输出的结果吧:

ok!
foreach loop 100000 times:1.48861932755sec
ok!
section loop 100000 times:3.7419090271sec 

结论:如果循环中不需要复杂的控制,就用foreach吧!还可以简化变量名,移植到其他地方也比较容易一些,何乐不为呢?