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 相关文章推荐
改进的IP计数器
Oct 09 PHP
php下实现农历日历的代码
Mar 07 PHP
php 读取文件乱码问题
Feb 20 PHP
PHP实现邮件群发的源码
Jun 18 PHP
php中mkdir函数用法实例分析
Nov 15 PHP
php+xml实现在线英文词典之添加词条的方法
Jan 23 PHP
php创建、获取cookie及基础要点分析
Jan 26 PHP
PHP SPL标准库中的常用函数介绍
May 11 PHP
php制作基于xml的RSS订阅源功能示例
Feb 08 PHP
利用php的ob缓存机制实现页面静态化方法
Jul 09 PHP
PHP进阶学习之垃圾回收机制详解
Jun 18 PHP
Laravel 实现数据软删除功能
Aug 21 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
新浪SAE搭建PHP项目教程
2015/01/28 PHP
php中使用gd库实现下载网页中所有图片
2015/05/12 PHP
php搜索文件程序分享
2015/10/30 PHP
php打包压缩文件之ZipArchive方法用法分析
2016/04/30 PHP
thinkPHP中钩子的使用方法实例分析
2017/11/16 PHP
深入理解JavaScript作用域和作用域链
2011/10/21 Javascript
图片img的src不变让浏览器重新加载实现方法
2013/03/29 Javascript
js数组中如何随机取出一个值
2014/06/13 Javascript
node+express制作爬虫教程
2016/11/11 Javascript
JavaScript函数中的this四种绑定形式
2017/08/15 Javascript
vue select组件的使用与禁用实现代码
2018/04/10 Javascript
Vue实现自定义下拉菜单功能
2018/07/16 Javascript
javascript中一些奇葩的日期换算方法总结
2018/11/14 Javascript
Angular刷新当前页面的实现方法
2018/11/21 Javascript
Jquery遍历筛选数组的几种方法和遍历解析json对象,Map()方法详解以及数组中查询某值是否存在
2019/01/18 jQuery
vue+element导航栏高亮显示的解决方式
2019/11/12 Javascript
Vue-drag-resize 拖拽缩放插件的使用(简单示例)
2019/12/04 Javascript
JS动态图片的实现方法完整示例
2020/01/13 Javascript
vue setInterval 定时器失效的解决方式
2020/07/30 Javascript
vue实现移动端触屏拖拽功能
2020/08/21 Javascript
JS addEventListener()和attachEvent()方法实现注册事件
2021/01/11 Javascript
Python中django学习心得
2017/12/06 Python
Python tkinter label 更新方法
2018/10/11 Python
pyqt5 从本地选择图片 并显示在label上的实例
2019/06/13 Python
python GUI库图形界面开发之PyQt5单选按钮控件QRadioButton详细使用方法与实例
2020/02/28 Python
Python+Selenium实现自动化的环境搭建的步骤(图文)
2020/09/01 Python
CSS3 重置iphone浏览器按钮input,select等表单元素的默认样式
2014/10/11 HTML / CSS
世界最大的私人旅行指南出版商:孤独星球
2016/08/23 全球购物
女性时尚网购:Chic Me
2019/07/30 全球购物
JDBC操作数据库的基本流程是什么
2014/10/28 面试题
劳资协议书范本
2014/04/23 职场文书
给校长的建议书200字
2014/05/16 职场文书
质量保证书
2015/01/17 职场文书
2015年销售工作总结范文
2015/03/30 职场文书
暑期家教宣传单
2015/07/14 职场文书
Vue3.0中Ref与Reactive的区别示例详析
2021/07/07 Vue.js