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


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(6) 面向对象
Feb 16 PHP
Joomla下利用configuration.php存储简单数据
May 19 PHP
php性能优化分析工具XDebug 大型网站调试工具
May 22 PHP
Eclipse中php插件安装及Xdebug配置的使用详解
Apr 25 PHP
PHP zip扩展Linux下安装过程分享
May 05 PHP
用 Composer构建自己的 PHP 框架之构建路由
Oct 30 PHP
php实现监控varnish缓存服务器的状态
Dec 30 PHP
php实现网站留言板功能
Nov 04 PHP
对PHP依赖注入的理解实例分析
Oct 09 PHP
解决Laravel blade模板转义html标签的问题
Sep 03 PHP
Laravel中正确地返回HTTP状态码方法示例
Sep 10 PHP
php解决crontab定时任务不能写入文件问题的方法分析
Sep 16 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
?繁体转换的class
2006/10/09 PHP
php checkdate、getdate等日期时间函数操作详解
2010/03/11 PHP
php截取中文字符串函数实例
2015/02/23 PHP
PHP执行shell脚本运行程序不产生core文件的方法
2016/12/28 PHP
浅谈Laravel中的一个后期静态绑定
2017/08/11 PHP
JavaScript 滚轮事件使用说明
2010/03/07 Javascript
基于jquery中children()与find()的区别介绍
2013/04/26 Javascript
jQuery中DOM树操作之使用反向插入方法实例分析
2015/01/23 Javascript
jQuery性能优化技巧分析
2015/02/20 Javascript
jquery动画效果学习笔记(8种效果)
2015/11/13 Javascript
使用JQuery中的trim()方法去掉前后空格
2016/09/16 Javascript
Angular使用ng-messages与PHP进行表单数据验证
2016/12/28 Javascript
浅谈关于axios和session的一些事
2017/07/13 Javascript
解决VUE框架 导致绑定事件的阻止冒泡失效问题
2018/02/24 Javascript
webpack中的热刷新与热加载的区别
2018/04/09 Javascript
node中的密码安全(加密)
2018/09/17 Javascript
使用vuex解决刷新页面state数据消失的问题记录
2019/05/08 Javascript
Vue实现固定定位图标滑动隐藏效果
2019/05/30 Javascript
Vue.js原理分析之nextTick实现详解
2020/09/07 Javascript
javascript中闭包closure的深入讲解
2021/03/03 Javascript
Python的Bottle框架的一些使用技巧介绍
2015/04/08 Python
使用简单工厂模式来进行Python的设计模式编程
2016/03/01 Python
python中类变量与成员变量的使用注意点总结
2017/04/29 Python
Python内建模块struct实例详解
2018/02/02 Python
使用Python获取并处理IP的类型及格式方法
2018/11/01 Python
Pyinstaller 打包exe教程及问题解决
2019/08/16 Python
Python List列表对象内置方法实例详解
2019/10/22 Python
Python3使用腾讯云文字识别(腾讯OCR)提取图片中的文字内容实例详解
2020/02/18 Python
python中if嵌套命令实例讲解
2021/02/25 Python
香港演唱会订票网站:StubHub香港
2019/10/10 全球购物
我爱我家教学反思
2014/05/01 职场文书
环保口号大全
2014/06/12 职场文书
运动会报道稿300字
2014/10/02 职场文书
教师批评与自我批评材料
2014/10/16 职场文书
合作意向协议书
2015/01/29 职场文书
2015个人年度工作总结范文
2015/05/28 职场文书