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


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 图片加水印与上传图片加水印php类
May 12 PHP
php短域名转换为实际域名函数
Jan 17 PHP
PHP网站备份程序代码分享
Jun 10 PHP
解析PHP中$_FILES的使用以及注意事项
Jul 05 PHP
PHP内核探索:变量概述
Jan 30 PHP
实例讲解PHP面向对象之多态
Aug 20 PHP
php中call_user_func函数使用注意事项
Nov 21 PHP
PHP缓存集成库phpFastCache用法
Dec 15 PHP
php自动获取关键字的方法
Jan 06 PHP
PHP实现字符串大小写转函数的功能实例
Feb 06 PHP
php获取是星期几的的一些常用姿势
Dec 15 PHP
PHP快速导出百万级数据到CSV或者EXCEL文件
Nov 27 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
hessian 在PHP中的使用介绍
2010/12/13 PHP
php对mongodb的扩展(初出茅庐)
2012/11/11 PHP
php微信公众号开发之关键词回复
2018/10/20 PHP
如何在Mozilla Gecko 用Javascript加载XSL
2007/01/09 Javascript
Javascript document.referrer判断访客来源网址
2020/05/15 Javascript
预加载css或javascript的js代码
2010/04/23 Javascript
div层的移动及性能优化
2010/11/16 Javascript
juqery 学习之五 文档处理 包裹、替换、删除、复制
2011/02/11 Javascript
js字符串转换成数字与数字转换成字符串的实现方法
2014/01/08 Javascript
javascript解决IE6下hover问题的方法
2015/07/28 Javascript
javascript动画算法实例分析
2015/07/31 Javascript
jQuery实现带延迟效果的滑动菜单代码
2015/09/02 Javascript
javascript瀑布流式图片懒加载实例
2020/06/28 Javascript
javascript中利用柯里化函数实现bind方法【推荐】
2016/04/29 Javascript
AngularJS基础 ng-value 指令简单示例
2016/08/03 Javascript
使用 bootstrap modal遇到的问题小结
2016/11/09 Javascript
bootstrap modal弹出框的垂直居中
2016/12/14 Javascript
js模拟支付宝密码输入框
2017/04/11 Javascript
nodejs 图片预览和上传的示例代码
2017/09/30 NodeJs
Vue实现textarea固定输入行数与添加下划线样式的思路详解
2018/06/28 Javascript
vue src动态加载请求获取图片的方法
2018/10/17 Javascript
js实现for循环跳过undefined值示例
2019/07/02 Javascript
Vue数据绑定实例写法
2019/08/06 Javascript
使用Layui搭建后台管理界面的操作方法
2019/09/20 Javascript
vue 接口请求地址前缀本地开发和线上开发设置方式
2020/08/13 Javascript
vue实现简单加法计算器
2020/10/22 Javascript
python 获取文件列表(或是目录例表)
2009/03/25 Python
python中利用zfill方法自动给数字前面补0
2018/04/10 Python
解决Tensorflow占用GPU显存问题
2020/02/03 Python
20行Python代码实现视频字符化功能
2020/04/13 Python
戴森香港官方网站:Dyson香港
2021/02/11 全球购物
施华洛世奇中国官网:SWAROVSKI中国
2020/06/16 全球购物
广播节目策划方案
2014/05/23 职场文书
预备党员转正思想汇报
2014/09/26 职场文书
辩护词格式
2015/05/22 职场文书
学雷锋主题班会教案
2015/08/13 职场文书