ThinkPHP3.1新特性之G方法的使用


Posted in PHP onJune 19, 2014

长期以来ThinkPHP都是需要通过debug_start、debug_end方法甚至Debug类才能完成那些调试的功能,而在ThinkPHP3.1版本中,这些复杂的功能被一个简单的G方法取代了,这不可不谓是一次华丽升级。

G方法的作用包括标记位置和区间统计两个功能,下面来看下具体用法:

1.标记位置

G方法的第一个用法就是标记位置,例如:

G('begin');

表示把当前位置标记为begin标签,并且记录当前位置的执行时间,如果环境支持的话,还能记录内存占用情况。可以在任何位置调用G方法标记。

2.运行时间统计

标记位置后,我们就可以再次调用G方法进行区间统计了,例如:

G('begin');
 // ...其他代码段
G('end');
 // ...也许这里还有其他代码
 // 进行统计区间
echo G('begin','end').'s';

G('begin','end') 表示统计begin位置到end位置的执行时间(单位是秒),begin必须是一个已经标记过的位置,如果这个时候end位置还没被标记过,则会自动把当前位置标记为end标签,输出的结果类似于:

0.0056s

默认的统计精度是小数点后4位,如果觉得这个统计精度不够,还可以设置例如:

G('begin','end',6).'s';

可能的输出会变成:

0.005587s

3.内存开销统计

如果你的环境支持内存占用统计的话,还可以使用G方法进行区间内存开销统计(单位为kb),例如:

echo G('begin','end','m').'kb';

第三个参数使用m表示进行内存开销统计,输出的结果可能是:

625kb

同样,如果end标签没有被标记的话,会自动把当前位置先标记为end标签
如果环境不支持内存统计,则该参数无效,仍然会进行区间运行时间统计。

忘掉debug_start、debug_end吧,大道至简,你懂的~

PHP 相关文章推荐
PHP 反向排序和随机排序代码
Jun 30 PHP
PHP 函数学习简单小结
Jul 08 PHP
PHP实现手机归属地查询API接口实现代码
Aug 27 PHP
使用PHP编写的SVN类
Jul 18 PHP
mcrypt启用 加密以及解密过程详细解析
Aug 07 PHP
php实现在线生成条形码示例分享(条形码生成器)
Dec 30 PHP
PHP使用GIFEncoder类生成的GIF动态图片验证码
Jul 01 PHP
初识PHP
Sep 28 PHP
php模仿asp Application对象在线人数统计实现方法
Jan 04 PHP
Laravel 5框架学习之日期,Mutator 和 Scope
Apr 08 PHP
php计算税后工资的方法
Jul 28 PHP
yii2.0整合阿里云oss的示例代码
Sep 19 PHP
ThinkPHP3.1新特性之查询条件预处理简介
Jun 19 #PHP
ThinkPHP3.1新特性之字段合法性检测详解
Jun 19 #PHP
ThinkPHP3.1新特性之动态设置自动完成和自动验证示例
Jun 19 #PHP
ThinkPHP的Widget扩展实例
Jun 19 #PHP
ThinkPHP3.1的Widget新用法
Jun 19 #PHP
ThinkPHP3.1新特性之命名范围的使用
Jun 19 #PHP
ThinkPHP3.1新特性之Action参数绑定
Jun 19 #PHP
You might like
推荐10个提供免费PHP脚本下载的网站
2014/12/31 PHP
CodeIgniter框架验证码类库文件与用法示例
2017/03/18 PHP
Centos7.7 64位利用本地完整安装包安装lnmp/lamp套件教程
2021/03/09 Servers
javascript 流畅动画实现原理
2009/09/08 Javascript
Javascript 赋值机制详解
2014/11/23 Javascript
jquery实现仿JqueryUi可拖动的DIV实例
2015/07/31 Javascript
jquery图片轮播特效代码分享
2020/04/20 Javascript
基于JS实现回到页面顶部的五种写法(从实现到增强)
2016/09/03 Javascript
Vue结合原生js实现自定义组件自动生成示例
2017/01/21 Javascript
jQuery轻松实现无缝轮播效果
2017/03/22 jQuery
jQuery中clone()函数实现表单中增加和减少输入项
2017/05/13 jQuery
zTree异步加载展开第一级节点的实现方法
2017/09/05 Javascript
nodejs基于mssql模块连接sqlserver数据库的简单封装操作示例
2018/01/05 NodeJs
JavaScript使用math.js进行精确计算操作示例
2018/06/19 Javascript
微信小程序实现即时通信聊天功能的实例代码
2018/08/17 Javascript
JS代码屏蔽F12,右键,粘贴,复制,剪切,选中,操作实例
2019/09/17 Javascript
JS 逻辑判断不要只知道用 if-else 和 switch条件判断(小技巧)
2020/05/27 Javascript
[04:03]2014DOTA2西雅图国际邀请赛 LGD战队巡礼
2014/07/07 DOTA
[01:02:02]DOTA2上海特级锦标赛A组败者赛 EHOME VS CDEC第二局
2016/02/25 DOTA
python简单实现获取当前时间
2016/08/27 Python
Python实现进程同步和通信的方法
2018/01/02 Python
一些Centos Python 生产环境的部署命令(推荐)
2018/05/07 Python
python批量读取文件名并写入txt文件中
2020/09/05 Python
详解Python并发编程之从性能角度来初探并发编程
2019/08/23 Python
Python单元测试工具doctest和unittest使用解析
2019/09/02 Python
python中count函数简单用法
2020/01/05 Python
Python Tornado批量上传图片并显示功能
2020/03/26 Python
Python pandas如何向excel添加数据
2020/05/22 Python
基于PyTorch的permute和reshape/view的区别介绍
2020/06/18 Python
详解HTML5 LocalStorage 本地存储
2016/12/23 HTML / CSS
工作自我评价分享
2013/12/01 职场文书
英语自荐信常用语句
2013/12/13 职场文书
计算机求职信
2014/07/02 职场文书
2016新年年会主持词
2015/07/06 职场文书
中国梦党课学习心得体会
2016/01/05 职场文书
利用Sharding-Jdbc进行分库分表的操作代码
2022/01/22 Java/Android