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


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 相关文章推荐
PHP 和 XML: 使用expat函数(二)
Oct 09 PHP
Discuz 5.0 中读取纯真IP数据库函数分析
Mar 16 PHP
php函数之子字符串替换&amp;#65279; str_replace
Mar 23 PHP
php 多关键字 高亮显示实现代码
Apr 23 PHP
解析PHP缓存函数的使用说明
May 10 PHP
PHP处理JSON字符串key缺少双引号的解决方法
Sep 16 PHP
php json转换成数组形式代码分享
Nov 10 PHP
PHP中SESSION的注销与清除
Apr 16 PHP
Zend Framework教程之视图组件Zend_View用法详解
Mar 05 PHP
100多行PHP代码实现socks5代理服务器[2]
May 05 PHP
PHP连接及操作PostgreSQL数据库的方法详解
Jan 30 PHP
PHP CURL实现模拟登陆并上传文件操作示例
Jan 02 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
融入意大利的咖啡文化
2021/03/03 咖啡文化
PHP Google的translate API代码
2008/12/10 PHP
php学习笔记 [预定义数组(超全局数组)]
2011/06/09 PHP
javascript jQuery插件练习
2008/12/24 Javascript
JavaScript 开发规范要求(图文并茂)
2010/06/11 Javascript
关于js中window.location.href,location.href,parent.location.href,top.location.href的用法与区别
2010/10/18 Javascript
JS模块与命名空间的介绍
2013/03/22 Javascript
遍历js中对象的属性和值的实例
2016/11/21 Javascript
Vue 2.0 服务端渲染入门介绍
2017/03/29 Javascript
关于JavaScript中的this指向问题总结篇
2017/07/23 Javascript
node.js基础知识小结
2018/02/26 Javascript
解决v-for中使用v-if或者v-bind:class失效的问题
2018/09/25 Javascript
vsCode安装使用教程和插件安装方法
2020/08/24 Javascript
了解在JavaScript中将值转换为字符串的5种方法
2019/06/06 Javascript
Vue退出登录时清空缓存的实现
2019/11/12 Javascript
JS中的变量作用域(console版)
2020/07/18 Javascript
[50:24]VGJ.S vs Pain 2018国际邀请赛小组赛BO2 第二场 8.17
2018/08/20 DOTA
Python的MongoDB模块PyMongo操作方法集锦
2016/01/05 Python
在pyqt5中QLineEdit里面的内容回车发送的实例
2019/06/21 Python
Python closure闭包解释及其注意点详解
2019/08/28 Python
Pandas数据离散化原理及实例解析
2019/11/16 Python
python matplotlib imshow热图坐标替换/映射实例
2020/03/14 Python
python爬虫使用requests发送post请求示例详解
2020/08/05 Python
python编写扎金花小程序的实例代码
2021/02/23 Python
日本最大的眼镜购物网站:Oh My Glasses
2016/11/13 全球购物
化妆品店促销方案
2014/02/24 职场文书
廉洁家庭事迹材料
2014/05/15 职场文书
2014乡镇班子个人对照检查材料思想汇报
2014/09/26 职场文书
民事赔偿协议书
2014/11/02 职场文书
2015年煤矿工作总结
2015/04/28 职场文书
上班迟到检讨书范文
2015/05/06 职场文书
离婚纠纷代理词
2015/05/23 职场文书
2015年秋季小班开学寄语
2015/05/27 职场文书
教学副校长工作总结
2015/08/13 职场文书
机关干部作风整顿心得体会
2016/01/22 职场文书
Java实现简单小画板
2022/06/10 Java/Android