开发工具
1.Discuz! X2、Discuz! X2.5 RC 开启debug模式方法(仅用于调试阶段,用完请关闭)
2.Discuz! Debug 模式的开启与使用
debug能干什么?
分析当前页面中的mysql语句、ajax请求内容、加载了多少程序文件、打印G变量、服务器与客户端信息
首先在这里由衷的感谢viswow与dz团队能把这种开发工具发布出来,这是对第三方作者极大的一个鼓励。在模板制作与插件开发中经常查询mysql是必须的,一句有误的sql语句可能就会让整个页面的执行时间加大,在这种情况下单靠自己去分析代码结构和sql语句是很耗费时间和精力的,这时就可以借助debug来帮助我们分析那些sql语句最耗时、这个页面加载了一些什么样的文件,这个页面请求了多少ajax内容 - 这里啰嗦一下,主要是让刚步入dx开发的童鞋们能更快速的了解这个工具:
- 这里主要是介绍一下利用debug检测自己开发的插件或者模板扩展mysql语句是否处于最优状态。
复制代码 首先我们需要安装debug工具,在上面的下载贴中参考作者的安装方法、介绍然后进行安装,安装成功后访问页面底部就会出现debug工具条。
注意:
如果是在配置文件(config\config_global.php)加:- $_config['debug'] = 'debug';
复制代码 则需要在当前页面的url 后面加上 【&debug=debug】
以在论坛主题列表页为例,以下截图是debug分析当前页面中mysql语句的查询情况:
本页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
|