但不会一直这样,我又按了一次刷新,这次得到了不一样的结果:
PHPLIB基本没变化,但是SMARTY提高了25%的速度。继续刷新,得到的都是类似于第二次的结果:SMARTY比PHPLIB template 快上近10%。我想这就是编译型比解释型快的原理了。SMARTY引擎本身就很大,加上还要把模板编译成php文件,速度当然比不上小巧的PHPLIB template。但这只是第一次的情况。第二次接到请求的时候,SMARTY发现该模板已经被编译过了,于是最耗时的一步被跳过了,而对手还要按部就班地进行查找和替换工作。这是编译原理里讲到的很经典的"用空间换时间"例子。
五、结论
结论就是如果你已经爱上SMARTY了,那么还等什么呢?当然并不是说它就全能,就如同我用MVC模式来写我的个人网站,非但没有减少工作量,反而总是要为不同层次间的耦合劳神。
SMARTY不适合什么呢?举个手册里的经典例子:天气预报网站。我还想到一个:股市大盘。在这种网站上用SMARTY会由于经常的重编译而效率偏低,还是PHPLIB template更为适合。
本文并不是为了对比两种引擎,而是为了说明SMARTY的优势。使用它最有意义之处在于它是PHP新体系的一部份,作为一支独立的力量,除了.NET和JAVA ONE这两大体系之外,大中型web开发还有别的选择。这对于GNU项目来说,其意义无异于刘邓大军千里跃进大别山。
您可能感兴趣的文章: