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 相关文章推荐
文件上传类
Oct 09 PHP
用PHP连接Oracle for NT 远程数据库
Oct 09 PHP
用php和MySql来与ODBC数据连接
Oct 09 PHP
PHP新手上路(十二)
Oct 09 PHP
有关 PHP 和 MySQL 时区的一点总结
Mar 26 PHP
php中设置多级目录session的问题
Aug 08 PHP
Linux fgetcsv取得的数组元素为空字符串的解决方法
Nov 25 PHP
PHP最常用的2种设计模式工厂模式和单例模式介绍
Aug 14 PHP
php时间戳转换的示例
Mar 31 PHP
php实现短信发送代码
Jul 05 PHP
PHP文件上传操作实例详解
Sep 27 PHP
PHP开发中csrf攻击的简单演示和防范
May 07 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
php产生随机数的两种方法实例代码 输出随机IP
2011/04/08 PHP
php在页面中调用fckeditor编辑器的方法
2011/06/10 PHP
ThinkPHP打开验证码页面显示乱码的解决方法
2014/12/18 PHP
WordPress后台中实现图片上传功能的实例讲解
2016/01/11 PHP
PHP观察者模式原理与简单实现方法示例
2017/08/25 PHP
php设计模式之策略模式实例分析【星际争霸游戏案例】
2020/03/26 PHP
很酷的javascript loading效果代码
2008/06/18 Javascript
Javascript 调试利器 Firebug使用详解六
2009/07/05 Javascript
jQuery图片轮播的具体实现
2013/09/11 Javascript
javascript生成随机颜色示例代码
2014/05/05 Javascript
基于javascript、ajax、memcache和PHP实现的简易在线聊天室
2015/02/03 Javascript
JQuery实现网页右侧随动广告特效
2016/01/17 Javascript
jquery属性,遍历,HTML操作方法详解
2016/09/17 Javascript
angularJS 指令封装回到顶部示例详解
2017/01/22 Javascript
使用JQ完成表格隔行换色的简单实例
2017/08/25 Javascript
javaScript实现复选框全选反选事件详解
2020/11/20 Javascript
基于Datatables跳转到指定页的简单实例
2017/11/09 Javascript
webpack+vue2构建vue项目骨架的方法
2018/01/09 Javascript
详解自定义ajax支持跨域组件封装
2018/02/08 Javascript
原生JS实现循环Nodelist Dom列表的4种方式示例
2018/02/11 Javascript
vue引用js文件的多种方式(推荐)
2018/05/17 Javascript
JavaScript中import用法总结
2019/01/20 Javascript
小程序分页实践之编写可复用分页组件
2019/07/18 Javascript
PHP实现发送和接收JSON请求
2018/06/07 Python
pycharm的console输入实现换行的方法
2019/01/16 Python
python 多进程队列数据处理详解
2019/12/23 Python
Tensorflow中的图(tf.Graph)和会话(tf.Session)的实现
2020/04/22 Python
解决Python Matplotlib绘图数据点位置错乱问题
2020/05/16 Python
python识别验证码的思路及解决方案
2020/09/13 Python
荷兰之家英文站:Holland at Home
2016/10/26 全球购物
英国在线汽车和面包车零件商店:Car Parts 4 Less
2018/08/15 全球购物
美国狗旅行和户外用品领先供应商:kurgo
2020/08/18 全球购物
网络工程师个人的自我评价范文
2013/10/01 职场文书
学校运动会开幕演讲稿
2014/01/04 职场文书
两行代码解决Jupyter Notebook中文不能显示的问题
2021/04/24 Python
微信小程序实现轮播图指示器
2022/06/25 Javascript