标题: Xdebug和WinCacheGrind分析Smarty效率问题
lizyy
新手上路
Rank: 1



UID 1753
精华 0
积分 0
帖子 6
翻译 0
原创 0
阅读权限 10
注册 2008-8-3
状态 离线
发表于 2008-8-7 19:18  资料  短消息  加为好友 
Xdebug和WinCacheGrind分析Smarty效率问题

Xdebug  和 WinCacheGrind  组合 是测试PHP的最好搭档,他们能帮助我们解决很多问题
安装方法我就不多讲了,主要是给大家介绍下使用方法:

先强调下WinCacheGrind中的时间 比实际时间少10倍,也就是你们理解的时候 10MS就是10ms
下面是实际例子来分析一下我的BLOG。
首先执行页面,得到执行时间 0.551074981689 秒(我自己计算的)





那么我们来实际分析下 为什么执行了接近半秒的时间





这里我们发现 smarty的执行时间竟然占用了 全部时间的61.61%
点击打开详细看一看


原来 smarty在display的时候要include 编译好的  模板文件  这个编译过程 占用了 smarty->display的98.77%的时间。我们可以看到右侧 SMARTY在这段时间做的事情
几乎大部分时间用到了 smarty_modifier_truncate上
原来 在我的BLOG 有个文章截取一部分的功能,我用的是 SMARTY的truncate
即:|truncate:280 而没有使用 substr来截取。

于是我把 文章的 truncate去掉改为  php程序中substr来截取
再执行一次看看

0.2551009655 !!!!   


经验提高了 一半的效率  缩短了一大半的时间
让我们看看 这个时候smarty 占用页面执行时间的多少 :


27.61%
从67%缩短到了21%  这个效率的提高巨大的。

本次测试 让我们了解到了........

...........

查看全文(摘自:lzy 源创.博客)





欢迎访问我的BLOG
www.i-cando.cn
顶部
smallipis
新手上路
Rank: 1



UID 636
精华 0
积分 0
帖子 7
翻译 0
原创 0
阅读权限 10
注册 2007-12-12
状态 离线
发表于 2008-8-19 16:09  资料  短消息  加为好友 
那难道不用truncate 这函数么?

在php里截取很麻烦,因为一般取出来的信息是一或二维数组...难道再循环处理么..

另你的truncate是不是修改了很多.(本人的修改成支持中文的)
我用ZEND debugger .用到truncate的最大是 0.1ms,且很多是小于0.1ms的...页面用了truncate过50次
为什么你的是大于1ms的?

[ 本帖最后由 smallipis 于 2008-8-19 16:34 编辑 ]

顶部
 


PHPEye开源社区


当前时区 GMT+8, 现在时间是 2008-10-12 18:07

    Powered by Discuz! 5.5.0  © 2001-2007 Comsenz Inc.
Processed in 0.013078 second(s), 6 queries , Gzip enabled

清除 Cookies - 联系我们 - PHPEye开源社区 - Archiver