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 相关文章推荐
thinkphp实现上一篇与下一篇的方法
Dec 08 PHP
解决nginx不支持thinkphp中pathinfo的问题
Jul 21 PHP
PHP实现图片上传并压缩
Dec 22 PHP
PHP实现搜索地理位置及计算两点地理位置间距离的实例
Jan 08 PHP
Zend Framework教程之模型Model基本规则和使用方法
Mar 04 PHP
php读取torrent种子文件内容的方法(测试可用)
May 03 PHP
Yii2 如何在modules中添加验证码的方法
Jun 19 PHP
php实现数字补零的方法总结
Sep 12 PHP
php写入文件不覆盖的实例讲解
Sep 17 PHP
laravel 判断查询数据库返回值的例子
Oct 11 PHP
PHP实现文件上传操作和封装
Mar 04 PHP
Thinkphp 框架配置操作之动态配置、扩展配置及批量配置实例分析
May 15 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笔记之:数据类型与常量的使用分析
2013/05/14 PHP
解析mysql 表中的碎片产生原因以及清理
2013/06/22 PHP
关于PHP中字符串与多进制转换函数的实例代码
2016/11/03 PHP
Javascript实例教程(19) 使用HoTMetal(4)
2006/12/23 Javascript
js 匿名调用实现代码
2009/06/19 Javascript
50个比较实用jQuery代码段
2011/09/18 Javascript
深入理解JavaScript系列(21):S.O.L.I.D五大原则之接口隔离原则ISP详解
2015/03/05 Javascript
jQuery检测某个元素是否存在代码分享
2015/07/09 Javascript
javascript小数精度丢失的完美解决方法
2016/05/31 Javascript
在windows上用nodejs搭建静态文件服务器的简单方法
2016/08/11 NodeJs
微信小程序 Toast自定义实例详解
2017/01/20 Javascript
为你的微信小程序体积瘦身详解
2017/05/20 Javascript
vue cli升级webapck4总结
2018/04/04 Javascript
JS数组扁平化(flat)方法总结详解
2019/06/24 Javascript
微信小程序 函数防抖 解决重复点击消耗性能问题实现代码
2019/09/12 Javascript
layui实现把数据表格时间戳转换为时间格式的例子
2019/09/12 Javascript
vue2.0+SVG实现音乐播放圆形进度条组件
2019/09/21 Javascript
[54:54]Newbee vs Serenity 2018国际邀请赛小组赛BO2 第一场 8.17
2018/08/18 DOTA
python实现监控windows服务并自动启动服务示例
2014/04/17 Python
python搜索指定目录的方法
2015/04/29 Python
Python中shutil模块的常用文件操作函数用法示例
2016/07/05 Python
python编写Logistic逻辑回归
2020/12/30 Python
python3 图片referer防盗链的实现方法
2018/03/12 Python
win7+Python3.5下scrapy的安装方法
2018/07/31 Python
Python实现的括号匹配判断功能示例
2018/08/25 Python
pytorch查看torch.Tensor和model是否在CUDA上的实例
2020/01/03 Python
HTML5中form如何关闭自动完成功能的方法
2018/07/02 HTML / CSS
香港太阳眼镜网上商店:SmartBuyGlasses香港
2016/07/22 全球购物
统计每一学生的平均成绩
2014/06/06 面试题
经典婚礼主持词
2014/03/13 职场文书
2014客服代表实习自我鉴定
2014/09/18 职场文书
优秀大学生事迹材料
2014/12/24 职场文书
业务员辞职信范文
2015/03/02 职场文书
2016教师年度考核评语大全
2015/12/01 职场文书
高二数学教学反思
2016/02/18 职场文书
《艾尔登法环》1.03.3补丁上线 碎星伤害调整
2022/04/07 其他游戏