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之变量、常量学习笔记
Mar 27 PHP
php设计模式 Command(命令模式)
Jun 26 PHP
PHP字符过滤函数去除字符串最后一个逗号(rtrim)
Mar 26 PHP
thinkphp浏览历史功能实现方法
Oct 29 PHP
thinkPHP实现瀑布流的方法
Nov 29 PHP
PHP中SESSION的注销与清除
Apr 16 PHP
thinkPHP交易详情查询功能详解
Dec 02 PHP
php获取指定数量随机字符串的方法
Feb 06 PHP
php递归函数怎么用才有效
Feb 24 PHP
PHP registerXPathNamespace()函数讲解
Feb 03 PHP
mac pecl 安装php7.1扩展教程
Oct 17 PHP
YII2框架中behavior行为的理解与使用方法示例
Mar 13 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执行zip与rar解压缩方法实现代码
2010/12/05 PHP
php设计模式 Builder(建造者模式)
2011/06/26 PHP
PHP+MySQL投票系统的设计和实现分享
2012/09/23 PHP
PHP url的pathinfo模式加载不同控制器的简单实现
2016/08/12 PHP
使用git迁移Laravel项目至新开发环境的步骤详解
2020/04/06 PHP
javascript 写的一个简单的timer
2009/07/30 Javascript
JS判断当前日期是否大于某个日期的实现代码
2012/09/02 Javascript
js清空表单数据的两种方式(遍历+reset)
2014/07/18 Javascript
JavaScript用JQuery呼叫Server端方法示例代码
2014/09/03 Javascript
jQuery解析json格式数据简单实例
2016/01/22 Javascript
JavaScript+canvas实现七色板效果实例
2016/02/18 Javascript
微信小程序 列表的上拉加载和下拉刷新的实现
2017/04/01 Javascript
vue基于Vue2.0和高德地图的地图组件实例
2017/04/28 Javascript
nodejs读取并去重excel文件
2018/04/22 NodeJs
JavaScript实现轮播图特效
2020/04/10 Javascript
vue-video-player 断点续播的实现
2021/02/01 Vue.js
Python3基础之基本数据类型概述
2014/08/13 Python
Python标准库之多进程(multiprocessing包)介绍
2014/11/25 Python
python中常用检测字符串相关函数汇总
2015/04/15 Python
Linux下为不同版本python安装第三方库
2016/08/31 Python
python利用urllib实现爬取京东网站商品图片的爬虫实例
2017/08/24 Python
django静态文件加载的方法
2018/05/20 Python
python实现定时压缩指定文件夹发送邮件
2020/12/22 Python
python交易记录整合交易类详解
2019/07/03 Python
使用python turtle画高达
2020/01/19 Python
python游戏开发的五个案例分享
2020/03/09 Python
django admin管理工具自定义时间区间筛选器DateRangeFilter介绍
2020/05/19 Python
如何基于Django实现上下文章跳转
2020/09/16 Python
小学生开学第一课活动方案
2014/03/27 职场文书
个人创业事迹材料
2014/12/30 职场文书
2015年行政助理工作总结
2015/04/30 职场文书
员工工作表扬信
2015/05/05 职场文书
小学安全教育主题班会
2015/08/12 职场文书
JavaScript实现简单图片切换
2021/04/29 Javascript
浅谈怎么给Python添加类型标注
2021/06/08 Python
Spring Boot实战解决高并发数据入库之 Redis 缓存+MySQL 批量入库问题
2022/02/12 Redis