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 array_flip() 删除重复数组元素专用函数
May 16 PHP
小文件php+SQLite存储方案
Sep 04 PHP
PHP性能优化工具篇Benchmark类调试执行时间
Dec 06 PHP
浅谈PHP变量作用域以及地址引用问题
Dec 27 PHP
改写ThinkPHP的U方法使其路由下分页正常
Jul 02 PHP
php简单防盗链实现方法
Jul 29 PHP
php根据用户语言跳转相应网页
Nov 04 PHP
PHP文件上传问题汇总(文件大小检测、大文件上传处理)
Dec 24 PHP
关于PHP中协程和阻塞的一些理解与思考
Aug 11 PHP
PHP以json或xml格式返回请求数据的方法
May 31 PHP
PHP实现简易计算器功能
Aug 28 PHP
laravel框架 laravel-admin上传图片到oss的方法
Oct 13 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
收音机史话 - 1960年代前后的DIY
2021/03/02 无线电
用phpmyadmin更改mysql5.0登录密码
2008/03/25 PHP
php处理单文件、多文件上传代码分享
2016/08/24 PHP
利用php_imagick实现复古效果的方法
2016/10/18 PHP
php使用json_decode后数字对象转换成了科学计数法的解决方法
2017/02/20 PHP
通过代码实例解析PHP session工作原理
2020/12/11 PHP
JS对URL字符串进行编码/解码分析
2008/10/25 Javascript
JQuery 引发两次$(document.ready)事件
2010/01/15 Javascript
jquery URL参数判断,确定菜单样式
2010/05/31 Javascript
js简单抽奖代码
2015/01/16 Javascript
javascript自动生成包含数字与字符的随机字符串
2015/02/09 Javascript
自定义百度分享的分享按钮
2015/03/18 Javascript
jquery实现简单的全选和反选功能
2016/01/02 Javascript
三种带箭头提示框总结实例
2016/06/14 Javascript
微信小程序  生命周期详解
2016/10/27 Javascript
微信小程序-消息提示框实例
2016/11/24 Javascript
jquery封装插件时匿名函数形参和实参的写法解释
2017/02/14 Javascript
Angular实现图片裁剪工具ngImgCrop实践
2017/08/17 Javascript
浅谈Angular4中常用管道
2017/09/27 Javascript
vuex的使用及持久化state的方式详解
2018/01/23 Javascript
vue拦截器实现统一token,并兼容IE9验证功能
2018/04/26 Javascript
JavaScript实现的简单加密解密操作示例
2018/06/01 Javascript
element-ui中select组件绑定值改变,触发change事件方法
2018/08/24 Javascript
详解webpack loader和plugin编写
2018/10/12 Javascript
checkbox在vue中的用法小结
2018/11/13 Javascript
初学vue出现空格警告的原因及其解决方案
2019/10/31 Javascript
让Vue响应Map或Set的变化操作
2020/11/11 Javascript
JavaScript实现点击切换验证码及校验
2021/01/10 Javascript
[02:03]风行者至宝清风环佩外观展示
2020/09/05 DOTA
python 请求服务器的实现代码(http请求和https请求)
2018/05/25 Python
详解flask表单提交的两种方式
2018/07/21 Python
python导入模块交叉引用的方法
2019/01/19 Python
Zadig&Voltaire官网:法国时装品牌
2018/01/05 全球购物
出纳员岗位责任制
2014/02/11 职场文书
党委班子对照检查材料
2014/08/19 职场文书
2014光棍节大学生联谊活动方案
2014/10/10 职场文书