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


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 相关文章推荐
二十行语句实现从Excel到mysql的转化
Oct 09 PHP
PHP读MYSQL中文乱码的解决方法
Dec 17 PHP
PHP 配置文件中open_basedir选项作用
Jul 19 PHP
解析PayPal支付接口的PHP开发方式
Nov 28 PHP
深入理解PHP之数组(遍历顺序)  Laruence原创
Jun 13 PHP
PHP笔记之:日期函数的使用介绍
Apr 24 PHP
用 Composer构建自己的 PHP 框架之设计 MVC
Oct 30 PHP
PHP中常用的字符串格式化函数总结
Nov 19 PHP
PHP实现基于栈的后缀表达式求值功能
Nov 10 PHP
thinkPHP5框架实现基于ajax的分页功能示例
Jun 12 PHP
Laravel框架路由和控制器的绑定操作方法
Jun 12 PHP
Yii2.0建立公共方法简单示例
Jan 29 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.ini 中文版
2006/10/28 PHP
PHP获取http请求的头信息实现步骤
2012/12/16 PHP
php中通过eval实现字符串格式的计算公式
2017/03/18 PHP
php输出反斜杠的实例方法
2019/09/19 PHP
PHP网页缓存技术优点及代码实例
2020/07/29 PHP
使用Jquery打造最佳用户体验的登录页面的实现代码
2011/07/08 Javascript
基于Jquery的文字自动截取(提供源代码)
2011/08/09 Javascript
JS实现简单的Canvas画图实例
2013/07/04 Javascript
一个JavaScript防止表单重复提交的实例
2014/10/21 Javascript
JS对HTML表格进行增删改操作
2016/08/22 Javascript
JavaScript面向对象分层思维全面解析
2016/11/22 Javascript
js addDqmForPP给标签内属性值加上双引号的函数
2016/12/24 Javascript
js实现消息滚动效果
2017/01/18 Javascript
js判断是否是手机页面
2017/03/17 Javascript
详解微信小程序 通过控制CSS实现view隐藏与显示
2017/05/24 Javascript
python3使用PyMysql连接mysql数据库实例
2017/02/07 Python
Python的爬虫框架scrapy用21行代码写一个爬虫
2017/04/24 Python
python实现人脸识别代码
2017/11/08 Python
人工智能最火编程语言 Python大战Java!
2017/11/13 Python
Python3解决棋盘覆盖问题的方法示例
2017/12/07 Python
Python编程pygame模块实现移动的小车示例代码
2018/01/03 Python
Python 创建空的list,以及append用法讲解
2018/05/04 Python
Python处理时间日期坐标轴过程详解
2019/06/25 Python
python config文件的读写操作示例
2019/09/27 Python
解决Jupyter notebook中.py与.ipynb文件的import问题
2020/04/21 Python
python中读入二维csv格式的表格方法详解(以元组/列表形式表示)
2020/04/24 Python
python函数调用,循环,列表复制实例
2020/05/03 Python
Python如何给你的程序做性能测试
2020/07/29 Python
利用HTML5的新特点实现图片文件异步上传
2014/05/29 HTML / CSS
FirstCry阿联酋儿童和婴儿产品网上购物:FirstCry.ae
2021/02/22 全球购物
北京-环亚运商测试题.net程序员初步测试题
2013/05/28 面试题
校友会欢迎辞
2014/01/13 职场文书
学期自我评价
2014/01/27 职场文书
三严三实对照检查材料范文
2014/09/23 职场文书
Netty分布式客户端接入流程初始化源码分析
2022/03/25 Java/Android
Python turtle编写简单的球类小游戏
2022/03/31 Python