}
第三步,编写使用PEAR Benchmark_Iterate类调试的代码
<?php
require_once "Benchmark/Iterate.php";
$bench = new Benchmark_Iterate;
$charset = $GLOBALS['db_charset'] = 'gbk';//utf-8
$content = "今年春晚,我特地关注了赵本山的新小品《捐助》,这篇小品对弱势群体的不尊重并无改变,小品讲的是赵本山与其弟子扮演两个捐助者...";
/*phpwind*/
$bench->run(50,"substrs",$content,30);
/*discuz*/
//$bench->run(50,"cutstr",$content,30);
$result = $bench->get();
?>
分别切换substrs和cutstr两个函数并且调用50次获取两个函数执行的平均时间。
三,性能比较测试结果
1,PHPWind程序substrs函数当截取字符编码为GBK的情况

图解:PHPWind程序substrs函数截取GBK编码的字符平均时间在0.0014s-0.0015s之间,纵坐标表示执行的时间,横坐标表示执行的次数,图表中mean表示平均执行时间,注s表示秒
2,Discuz!程序cutstr函数当截取字符编码为GBK的情况
图解:Discuz!程序cutstr函数截取GBK编码的字符平均时间在0.0016s-0.0018s之间
3,PHPWind程序substrs函数当截取字符编码为UTF-8的情况
图解:PHPWind程序substrs函数截取UTF-8编码的字符平均时间在0.001s-0.0012s之间
4,Discuz!程序cutstr函数当截取字符编码为UTF-8的情况
图解:Discuz!程序cutstr函数截取UTF-8编码的字符平均时间在0.0044s-0.0052s之间
四,性能比较测试总结
如上使用PEAR的Benchmark_Iterate类比较了两个截取字符函数的执行性能,在实际的代码开发过程中,为了保证代码的效率与性能,我们可以采取同样的方法来分析函数的执行性能或问题,这个非常有用!
本文通过比较PHPWind与Discuz两个社区论坛产品的截取字符函数substrs与cutstr的执行性能情况为例,谈谈PEAR Benchmark_Iterate类在实际开发中的应用,请继续关注下期的PHP性能优化系列。







