全局记录程序片段的运行时间 正确找到程序逻辑耗时多的断点


Posted in PHP onJanuary 06, 2011
// 定义全局变量 记录时间 
$_timer_id = 0; 
// 函数设置全局变量 记录各个断点的运行所需时间 
function makeTimer( $notes, $onOff=FALSE ) 
{ 
if( $onOff ) 
{ 
global $_timer_id; 
$GLOBALS['timer'][$_timer_id][0] = microtime(TRUE); 
$GLOBALS['timer'][$_timer_id][1] = $notes; 
$_timer_id++; 
} 
} 
// 把全局运行时间情况输出 
function traceTimer() 
{ 
$timer_str = ''; 
$G_timer = count($GLOBALS['timer'])-1; 
if( $G_timer>0 ) 
{ 
for( $i=0;$i<$G_timer;$i++ ) 
{ 
$dif_time = number_format( ($GLOBALS['timer'][$i+1][0] - $GLOBALS['timer'][$i][0]), 3 ); 
$timer_str .= 'dif: '.$dif_time.' '.$GLOBALS['timer'][$i][1]."\n"; 
} 
$dif_time = number_format( (microtime(TRUE) - $GLOBALS['timer'][$G_timer][0]), 3 ); 
$timer_str .= 'dif: '.$dif_time.' '.$GLOBALS['timer'][$G_timer][1]."\n"; 
} 
return $timer_str; 
} 
使用方法: 
// 开始时间 
makeTimer( ' LINE:'.__LINE__ ); 
$imgstrpos = strpos($str, '<img'.$imgstr); 
makeTimer( ' LINE:'.__LINE__ ); 
$str_p = substr($str_noimg, 0, $imgstrpos); 
makeTimer( ' LINE:'.__LINE__ ); 
$str_n = substr($str_noimg, $imgstrpos, strlen($str_noimg)); 
makeTimer( ' LINE:'.__LINE__ ); 
$pst_exc_imgs = $str_p.'<img '.$imgstr.'>'.$str_n." "; 
makeTimer( ' LINE:'.__LINE__ ); 
// 记录到日志中 
error_log( traceTimer(), 3, '/tmp/'.basename(__FILE__).'.log' ); 
// 或者直接输出 
echo traceTimer();

at 2010-05-14 09:20
PHP 相关文章推荐
PHPMailer 中文使用说明小结
Jan 22 PHP
不重新编译PHP为php增加openssl模块的方法
Jun 14 PHP
PHP取余函数介绍MOD(x,y)与x%y
May 15 PHP
PHP编程中的常见漏洞和代码实例
Aug 06 PHP
php从完整文件路径中分离文件目录和文件名的方法
Mar 13 PHP
php实现改变图片直接打开为下载的方法
Apr 14 PHP
PHP文件及文件夹操作之创建、删除、移动、复制
Jul 13 PHP
利用PHP抓取百度阅读的方法示例
Dec 18 PHP
使用WAMP搭建PHP本地开发环境
May 10 PHP
laravel 之 Eloquent 模型修改器和序列化示例
Oct 17 PHP
使用PHP+Redis实现延迟任务,实现自动取消订单功能
Nov 21 PHP
Laravel等框架模型关联的可用性浅析
Dec 15 PHP
Discuz Uchome ajaxpost小技巧
Jan 04 #PHP
php INI配置文件的解析实现分析
Jan 04 #PHP
PHP strncasecmp字符串比较的小技巧
Jan 04 #PHP
php simplexmlElement操作xml的命名空间实现代码
Jan 04 #PHP
array_multisort实现PHP多维数组排序示例讲解
Jan 04 #PHP
php关于array_multisort多维数组排序的使用说明
Jan 04 #PHP
PHP 设置MySQL连接字符集的方法
Jan 02 #PHP
You might like
自定义PHP分页函数
2006/10/09 PHP
深入Apache与Nginx的优缺点比较详解
2013/06/17 PHP
Thinkphp开发--集成极光推送
2017/09/15 PHP
php设计模式之适配器模式原理、用法及注意事项详解
2019/09/24 PHP
线路分流自动跳转代码;希望对大家有用!
2006/12/02 Javascript
event对象的方法 兼容多浏览器
2009/06/27 Javascript
javascript实现客户端兼容各浏览器创建csv并下载的方法
2015/03/23 Javascript
jquery form表单获取内容以及绑定数据
2016/02/24 Javascript
用js实现放大镜的效果的简单实例
2016/05/23 Javascript
springMVC + easyui + $.ajaxFileUpload实现文件上传注意事项
2017/04/23 Javascript
jQuery:unbind方法的使用详解
2017/08/14 jQuery
vue.js vue-router如何实现无效路由(404)的友好提示
2017/12/20 Javascript
vue脚手架中配置Sass的方法
2018/01/04 Javascript
vue中$refs, $emit, $on, $once, $off的使用详解
2019/05/26 Javascript
vux-scroller实现移动端上拉加载功能过程解析
2019/10/08 Javascript
vue中解决微信html5原生ios虚拟键返回不刷新问题
2020/10/20 Javascript
Vue绑定用户接口实现代码示例
2020/11/04 Javascript
解决iview table组件里的 固定列 表格不自适应的问题
2020/11/13 Javascript
python分割文件的常用方法
2014/11/01 Python
Python-嵌套列表list的全面解析
2016/06/08 Python
django请求返回不同的类型图片json,xml,html的实例
2018/05/22 Python
Python机器学习k-近邻算法(K Nearest Neighbor)实例详解
2018/06/25 Python
flask框架使用orm连接数据库的方法示例
2018/07/16 Python
idea创建springMVC框架和配置小文件的教程图解
2018/09/18 Python
python之PyQt按钮右键菜单功能的实现代码
2019/08/17 Python
Python random模块的使用示例
2020/10/10 Python
使用HTML5 Canvas API中的clip()方法裁剪区域图像
2016/03/25 HTML / CSS
Melijoe美国官网:法国奢侈童装购物网站
2017/04/19 全球购物
商务英语专业求职信范文
2014/01/28 职场文书
自查自纠工作总结
2014/10/15 职场文书
农民工工资承诺书大全
2015/05/04 职场文书
大学学生会竞选稿
2015/11/19 职场文书
大学生暑期社会实践的个人总结!
2019/07/17 职场文书
JS数组的常用方法整理
2021/03/31 Javascript
Python 高级库15 个让新手爱不释手(推荐)
2021/05/15 Python
css3 文字断裂效果
2022/04/22 HTML / CSS