Discuz教程网

[模板制作] 借Discuz-X开发者工具【debug】提高模板的执行效率

[复制链接]
authicon dly 发表于 2011-9-27 16:53:55 | 显示全部楼层 |阅读模式
开发工具
1.Discuz! X2、Discuz! X2.5 RC 开启debug模式方法(仅用于调试阶段,用完请关闭)
2.Discuz! Debug 模式的开启与使用

debug能干什么?
分析当前页面中的mysql语句、ajax请求内容、加载了多少程序文件、打印G变量、服务器与客户端信息

首先在这里由衷的感谢viswow与dz团队能把这种开发工具发布出来,这是对第三方作者极大的一个鼓励。在模板制作与插件开发中经常查询mysql是必须的,一句有误的sql语句可能就会让整个页面的执行时间加大,在这种情况下单靠自己去分析代码结构和sql语句是很耗费时间和精力的,这时就可以借助debug来帮助我们分析那些sql语句最耗时、这个页面加载了一些什么样的文件,这个页面请求了多少ajax内容
  1. 这里啰嗦一下,主要是让刚步入dx开发的童鞋们能更快速的了解这个工具:
  2. 这里主要是介绍一下利用debug检测自己开发的插件或者模板扩展mysql语句是否处于最优状态。
复制代码
首先我们需要安装debug工具,在上面的下载贴中参考作者的安装方法、介绍然后进行安装,安装成功后访问页面底部就会出现debug工具条。

注意:
如果是在配置文件(config\config_global.php)加
  1. $_config['debug'] = 'debug';
复制代码
则需要在当前页面的url 后面加上 &debug=debug

以在论坛主题列表页为例,以下截图是debug分析当前页面中mysql语句的查询情况:

202334kkvzr7thxj774xht.gif.thumb.jpg
本页sql介绍:

Queries: 13 这个页面总共产生了13个mysql查询语句

抽取第一条mysql信息注释

0.000303s • SELECT * FROM pre_common_member WHERE uid='1' 后面是mysql语句,前面的时间是这句mysql的查询时间

蓝色框是mysql的EXPLAIN信息,我们可以参考这个地方对数据表做一些索引优化
游客,如果您要查看本帖隐藏内容请回复

红色框中是这句mysql所在的文件、行、以及那些文件对这句mysql进行过处理

从红色框中返回的这些mysql语句周边信息,我们就可以清晰的了解到当前这句sql语句所在程序位置:
    source\function\function_core.php    130行     
    mysql语句的执行函数【DB::fetch_first()】
   【DB::fetch_first()】这个函数又是经过以下文件进行封装:
    source\class\class_core.php    982行

ps:
如果一个页面执行时间到了1s你就需要看看是否有需要优化的内容
如果一句mysql语句的查询时间到了0.1s就需要检查一下是否需要进行优化



上一篇:Discuz Debug 模式的开启与使用
下一篇:Discuz-X模板教程 G变量注解之 $_G['style'] 全局可用的风格变量 By:cr180
authicon 我恨你 发表于 2013-3-16 00:40:44 | 显示全部楼层
感恩无私的分享与奉献 :)
authicon ohyeah 发表于 2013-9-4 23:08:21 | 显示全部楼层
楼主真是好人……感恩无私的分享与奉献 :)
authicon 网络摆渡客 发表于 2013-11-12 21:14:56 | 显示全部楼层
感谢楼主分享
authicon xuanjianghui 发表于 2014-9-29 11:19:23 | 显示全部楼层
必须要用到
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

1314学习网 ( 浙ICP备10214163号 )

GMT+8, 2024-5-17 01:45

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表