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 相关文章推荐
PHP5/ZendEngine2的改进
Oct 09 PHP
PHP开发中常用的8个小技巧
Aug 27 PHP
PHP获取163、gmail、126等邮箱联系人地址【已测试2009.10.10】
Oct 11 PHP
php中读写文件与读写数据库的效率比较分享
Oct 19 PHP
php面向对象中的魔术方法中文说明
Mar 04 PHP
phpMyAdmin自动登录和取消自动登录的配置方法
May 12 PHP
CI框架常用函数封装实例
Nov 21 PHP
PHP AjaxForm提交图片上传并显示图片源码
Nov 29 PHP
thinkPHP模板中for循环与switch语句用法示例
Nov 30 PHP
PHP自定义序列化接口Serializable用法分析
Dec 29 PHP
laravel 实现上传图片到本地和前台访问示例
Oct 21 PHP
PHP与Web页面交互操作实例分析
Jun 02 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
input file获得文件根目录简单实现
2013/04/26 PHP
基于PHP+Ajax实现表单验证的详解
2013/06/25 PHP
本地机apache配置基于域名的虚拟主机详解
2013/08/10 PHP
smarty模板引擎从配置文件中获取数据的方法
2015/01/22 PHP
php实现文件上传及头像预览功能
2017/01/15 PHP
javascript 写类方式之五
2009/07/05 Javascript
jquery 模拟类搜索框自动完成搜索提示功能(改进)
2010/05/24 Javascript
jquery中对表单的基本操作代码
2010/07/29 Javascript
js中eval()函数和trim()去掉字符串左右空格应用
2013/02/02 Javascript
asp.net中System.Timers.Timer的使用方法
2013/03/20 Javascript
Jquery实现网页跳转或用命令打开指定网页的解决方法
2013/07/09 Javascript
JS控制图片等比例缩放的示例代码
2013/12/24 Javascript
Js控制滑轮左右滑动实例
2015/02/13 Javascript
jquery Easyui快速开发总结
2015/08/20 Javascript
js实现不重复导入的方法
2016/03/02 Javascript
使用jQuery制作Web页面遮罩层插件的实例教程
2016/05/26 Javascript
BootStrap智能表单实战系列(七)验证的支持
2016/06/13 Javascript
js中通过getElementsByName访问name集合对象的方法
2016/10/31 Javascript
JavaScript获取当前时间向前推三个月的方法示例
2017/02/04 Javascript
微信小程序中的onLoad详解及简单实例
2017/04/05 Javascript
基于Vue实例生命周期(全面解析)
2017/08/16 Javascript
Canvas放置反弹效果随机图形(实例)
2017/08/17 Javascript
微信小程序事件对象中e.target和e.currentTarget的区别详解
2019/05/08 Javascript
原生js实现随机点餐效果
2019/12/10 Javascript
你准备好迎接vue3.0了吗
2020/04/28 Javascript
Vue element-ui父组件控制子组件的表单校验操作
2020/07/17 Javascript
Bootstrap FileInput实现图片上传功能
2021/01/28 Javascript
Python判断列表是否已排序的各种方法及其性能分析
2016/06/20 Python
python提取图像的名字*.jpg到txt文本的方法
2018/05/10 Python
Jupyter安装拓展nbextensions及解决官网下载慢的问题
2021/03/03 Python
骨干教师考核评语
2014/12/31 职场文书
离婚协议书格式
2015/01/26 职场文书
骨干教师个人总结
2015/02/11 职场文书
导游词之天下银坑景区
2019/11/21 职场文书
图文详解Nginx版本平滑升级方案
2021/09/15 Servers
详解Redis在SpringBoot工程中的综合应用
2021/10/16 Redis