php统计时间和内存使用情况示例分享


Posted in PHP onMarch 13, 2014
/**
 * 记录和统计时间(微秒)和内存使用情况
 * 使用方法:
 * <code>
 * G('begin'); // 记录开始标记位
 * // ... 区间运行代码
 * G('end'); // 记录结束标签位
 * echo G('begin','end',6); // 统计区间运行时间 精确到小数后6位
 * echo G('begin','end','m'); // 统计区间内存使用情况
 * 如果end标记位没有定义,则会自动以当前作为标记位
 * 其中统计内存使用需要 MEMORY_LIMIT_ON 常量为true才有效
 * </code>
 * @param string $start 开始标签
 * @param string $end 结束标签
 * @param integer|string $dec 小数位或者m 
 * @return mixed
 */
function G($start,$end='',$dec=4) {
    static $_info       =   array();
    static $_mem        =   array();
    if(is_float($end)) { // 记录时间
        $_info[$start]  =   $end;
    }elseif(!empty($end)){ // 统计时间和内存使用
        if(!isset($_info[$end])) $_info[$end]       =  microtime(TRUE);
        if(MEMORY_LIMIT_ON && $dec=='m'){
            if(!isset($_mem[$end])) $_mem[$end]     =  memory_get_usage();
            return number_format(($_mem[$end]-$_mem[$start])/1024);          
        }else{
            return number_format(($_info[$end]-$_info[$start]),$dec);
        }           }else{ // 记录时间和内存使用
        $_info[$start]  =  microtime(TRUE);
        if(MEMORY_LIMIT_ON) $_mem[$start]           =  memory_get_usage();
    }
}
PHP 相关文章推荐
PHP中PDO基础教程 入门级
Sep 04 PHP
Fine Uploader文件上传组件应用介绍
Jan 06 PHP
php获取数组长度的方法(有实例)
Oct 27 PHP
php中的boolean(布尔)类型详解
Oct 28 PHP
ThinkPHP验证码使用简明教程
Mar 05 PHP
字符串长度函数strlen和mb_strlen的区别示例介绍
Sep 09 PHP
ThinkPHP中使用Ueditor富文本编辑器
Sep 02 PHP
Zend Framework处理Json数据方法详解
Dec 09 PHP
PHP 表单提交及处理表单数据详解及实例
Dec 27 PHP
PHP使用递归算法无限遍历数组示例
Jan 13 PHP
Laravel框架实现的记录SQL日志功能示例
Jun 19 PHP
一次因composer错误使用引发的问题与解决
Mar 06 PHP
去除php注释和去除空格函数分享
Mar 13 #PHP
支持中文和其他编码的php截取字符串函数分享(截取中文字符串)
Mar 13 #PHP
zf框架的数据库追踪器使用示例
Mar 13 #PHP
zf框架的校验器InArray使用示例
Mar 13 #PHP
zf框架的session会话周期及次数限制使用示例
Mar 13 #PHP
zf框架的registry(注册表)使用示例
Mar 13 #PHP
zf框架的Filter过滤器使用示例
Mar 13 #PHP
You might like
PHP set_time_limit(0)长连接的实现分析
2010/03/02 PHP
Thinkphp5 微信公众号token验证不成功的原因及解决方法
2017/11/12 PHP
Nigma vs AM BO3 第二场2.13
2021/03/10 DOTA
javascript 获取HTML DOM父、子、临近节点
2014/06/16 Javascript
2014 HTML5/CSS3热门动画特效TOP10
2014/12/07 Javascript
javascript工厂方式定义对象
2014/12/26 Javascript
JavaScript中的console.dir()函数介绍
2014/12/29 Javascript
Javascript中arguments用法实例分析
2015/06/13 Javascript
JS三级可折叠菜单实现方法
2016/02/29 Javascript
javascript稀疏数组(sparse array)和密集数组用法分析
2016/12/28 Javascript
JS实现全屏的四种写法
2016/12/30 Javascript
js实现4个方向滚动的球
2017/03/06 Javascript
JS实现简单的天数计算器完整实例
2017/04/28 Javascript
JS库之Three.js 简易入门教程(详解之一)
2017/09/13 Javascript
修改UA在PC中访问只能在微信中打开的链接方法
2017/11/27 Javascript
nodejs之koa2请求示例(GET,POST)
2018/08/07 NodeJs
解决webpack dev-server不能匹配post请求的问题
2018/08/24 Javascript
NodeJs实现简单的爬虫功能案例分析
2018/12/05 NodeJs
vue中$nextTick的用法讲解
2019/01/17 Javascript
浅谈VUE中演示v-for为什么要加key
2020/01/16 Javascript
jQuery实现移动端笔触canvas电子签名
2020/05/21 jQuery
基于JavaScript实现简单扫雷游戏
2021/01/02 Javascript
[52:41]OG vs IG 2018国际邀请赛小组赛BO2 第二场 8.18
2018/08/20 DOTA
Python编程中的异常处理教程
2015/08/21 Python
Python聊天室实例程序分享
2016/01/05 Python
Python 两个列表的差集、并集和交集实现代码
2016/09/21 Python
Django REST framework内置路由用法
2019/07/26 Python
如何提高python 中for循环的效率
2020/04/15 Python
解决启动django,浏览器显示“服务器拒绝访问”的问题
2020/05/13 Python
如何在Win10系统使用Python3连接Hive
2020/10/15 Python
html5 touch事件实现触屏页面上下滑动(一)
2016/03/10 HTML / CSS
ruby如何进行集成操作?Ruby能进行多重继承吗?
2013/10/16 面试题
超市业务员岗位职责
2013/12/05 职场文书
餐厅经理岗位职责范本
2014/02/17 职场文书
党校学习党性分析材料
2014/12/19 职场文书
教师党员承诺书2015
2015/01/21 职场文书