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 相关文章推荐
关于BIG5-HKSCS的解决方法
Mar 20 PHP
PHP中图片等比缩放的实例
Mar 24 PHP
phpQuery占用内存过多的处理方法
Nov 13 PHP
php全角字符转换为半角函数
Feb 07 PHP
thinkphp使用literal防止模板标签被解析的方法
Nov 22 PHP
ThinkPHP中自定义错误页面和提示页面实例
Nov 22 PHP
php实现以只读方式打开文件的方法
Mar 16 PHP
PHP扩展程序实现守护进程
Apr 16 PHP
php通过exif_read_data函数获取图片的exif信息
May 21 PHP
编写PHP脚本过滤用户上传的图片
Jul 03 PHP
php数组比较实现查找连续数的方法
Jul 29 PHP
PHP实现基于图的深度优先遍历输出1,2,3...n的全排列功能
Nov 10 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
完美解决:Apache启动问题―(OS 10022)提供了一个无效的参数
2013/06/08 PHP
php一些错误处理的方法与技巧总结
2013/08/10 PHP
两款万能的php分页类
2015/11/12 PHP
php中使用array_filter()函数过滤数组实例讲解
2021/03/03 PHP
HTML IMG标签 onload 内存溢出导致浏览器CPU占用过高
2021/03/09 Javascript
JQuery Tab选项卡效果代码改进版
2010/04/01 Javascript
javascript温习的一些笔记 基础常用知识小结
2011/06/22 Javascript
基于jquery的固定表头和列头的代码
2012/05/03 Javascript
一个背景云变换js特效 鼠标移动背景云变化
2012/12/28 Javascript
jQuery模拟黑客帝国矩阵效果实例
2015/06/28 Javascript
javascript设计模式--策略模式之输入验证
2015/11/27 Javascript
Javascript实现苹果悬浮虚拟按钮
2016/04/10 Javascript
jQuery实现微信长按识别二维码功能
2016/08/26 Javascript
jQuery实现拖拽可编辑模块功能代码
2017/01/12 Javascript
JavaScript中Hoisting详解 (变量提升与函数声明提升)
2017/08/18 Javascript
亲自动手实现vue日历控件
2019/06/26 Javascript
[05:53]完美世界携手游戏风云打造 卡尔工作室观战系统篇
2013/04/22 DOTA
Python程序设计入门(4)模块和包
2014/06/16 Python
用Python的Django框架来制作一个RSS阅读器
2015/07/22 Python
全面了解Python的getattr(),setattr(),delattr(),hasattr()
2016/06/14 Python
python安装教程 Pycharm安装详细教程
2017/05/02 Python
python调用tcpdump抓包过滤的方法
2018/07/18 Python
3分钟学会一个Python小技巧
2018/11/23 Python
python中字符串数组逆序排列方法总结
2019/06/23 Python
python中pip的使用和修改下载源的方法
2019/07/08 Python
python标准库os库的函数介绍
2020/02/12 Python
python tkinter实现下载进度条及抖音视频去水印原理
2021/02/07 Python
J2ee常用的设计模式?说明工厂模式
2015/05/21 面试题
某同学的自我鉴定范文
2013/12/26 职场文书
中学生旷课检讨书模板
2014/10/08 职场文书
论文评审意见
2015/06/05 职场文书
英雄儿女观后感
2015/06/09 职场文书
复活读书笔记
2015/06/29 职场文书
HTML5简单实现添加背景音乐的几种方法
2021/05/12 HTML / CSS
python之django路由和视图案例教程
2021/07/26 Python
Redis入门基础常用操作命令整理
2022/06/01 Redis