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获取用户IPv4或IPv6地址的代码
Nov 15 PHP
解析thinkphp import 文件内容变量失效的问题
Jun 20 PHP
基于php使用memcache存储session的详解
Jun 25 PHP
浅析php学习的路线图
Jul 10 PHP
php中$美元符号与Zen Coding冲突问题解决方法分享
May 28 PHP
ThinkPHP3.1新特性之动态设置自动完成及自动验证示例代码
Jun 23 PHP
ThinkPHP自动转义存储富文本编辑器内容导致读取出错的解决方法
Aug 08 PHP
PHP开发中常用的十个代码样例
Feb 02 PHP
php自动载入类用法实例分析
Jun 24 PHP
lnmp安装多版本PHP共存的方法详解
Aug 02 PHP
PHP面向对象程序设计继承用法简单示例
Dec 28 PHP
php使用redis的几种常见操作方式和用法示例
Feb 20 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
Ajax实时验证用户名/邮箱等是否已经存在的代码打包
2011/12/01 PHP
PHP中使用unset销毁变量并内存释放问题
2012/07/05 PHP
PHP 获取文件路径(灵活应用__FILE__)
2013/02/15 PHP
解析PHP中empty is_null和isset的测试
2013/06/29 PHP
PDO::_construct讲解
2019/01/27 PHP
Laravel自动生成UUID,从建表到使用详解
2019/10/24 PHP
JS IE和FF兼容性问题汇总
2009/02/09 Javascript
精心挑选的15个jQuery下拉菜单制作教程
2012/06/15 Javascript
网页打开自动最大化的js代码
2012/08/22 Javascript
禁止你的左键复制实用技巧
2013/01/04 Javascript
深入了解Node.js中的一些特性
2014/09/25 Javascript
jQuery中wrapAll()方法用法实例
2015/01/16 Javascript
Javascript writable特性介绍
2015/02/27 Javascript
Seajs 简易文档 提供简单、极致的模块化开发体验
2016/04/13 Javascript
基于Javascript实现文件实时加载进度的方法
2016/10/12 Javascript
微信小程序 配置文件详细介绍
2016/12/14 Javascript
详解用node-images 打造简易图片服务器
2017/05/08 Javascript
给Easyui-Datebox设置隐藏或者不可用的解决方法
2017/05/26 Javascript
vue中锚点的三种方法
2018/07/06 Javascript
javascript动态创建对象的属性详解
2018/11/07 Javascript
JSON的parse()方法介绍
2019/01/31 Javascript
让 babel webpack vue 配置文件支持智能提示的方法
2019/06/22 Javascript
微信小程序如何实现五星评价功能
2019/10/15 Javascript
[04:11]DOTA2亚洲邀请赛小组赛第一日 TOP10精彩集锦
2015/01/30 DOTA
Python绑定方法与非绑定方法详解
2017/08/18 Python
Python文本特征抽取与向量化算法学习
2017/12/22 Python
mvc框架打造笔记之wsgi协议的优缺点以及接口实现
2018/08/01 Python
Python数据类型之Tuple元组实例详解
2019/05/08 Python
Python实现Singleton模式的方式详解
2019/08/08 Python
pytorch的梯度计算以及backward方法详解
2020/01/10 Python
Python 给下载文件显示进度条和下载时间的实现
2020/04/02 Python
机械系大学毕业生推荐信
2013/11/27 职场文书
实习单位意见
2015/06/04 职场文书
2016大学生社会实践心得体会范文
2016/01/14 职场文书
详解TypeScript中的类型保护
2021/04/29 Javascript
浅谈MySQL之select优化方案
2021/08/07 MySQL