您的位置:首页 > 其它

程序的调试(堆栈的使用)

2015-06-14 17:27 239 查看
换新工作一个月,以前是做自动化测试的,对于代码的编译,调试一直都是停留在数据的输出,显示等层面的调试,从来没有考虑到更深的一层。汗颜。

正如领导所说。对于任何一个成熟的框架来说,都会有相应的log输出,如果仅仅是将将数据输出,显示进行调试,太机械了。作为一个开发人员,如何高效的的工作,高效的解决问题,这才是关键。

哈哈,不扯了,进入正题。

最近,在做一个线下网站的性能测试,需要找出线下网站的响应时间作为判断的标准。切入正题了。对于任何一个编程语言来说,都有对应的堆栈函数,便于用户进行调试程序,监控程序运行。

这一块,我们使用的是PHP debug_backtrace()函数,进行堆栈调试,同时将结果写入到对应的文本编辑器当中。

思路如下:将函数的堆栈输出以固定格式,输出到文件中。

我们在CI框架的外边,写了一个log文件,在这个log文件当中,我们根据编程语言的特性,在每一个函数运行的开始,输出打印函数执行的堆栈情况。

格式如下:

运行函数 运行函数对应的参数 当前时间 运行总时间 时间差

这种思路的输出方便程序猿查找问题。如何获取首次运行时间,我承认的是我的思路当时是乱的。领导的方法很简洁,就使用了bool类型值的使用。

源码如下:

is_first =false;

function test()

{

  if(!is_first)

{

  first_time=current_time;

  is_first=true;

}

}

//第一次使用test函数通过改变布尔数值来获取第一次时间。

学习总结:

第一:任何一个好的框架肯定有对应的log输出,比如说CI框架有其对应log文件输出,而且用户可以设置。

第二:主流的编程语言都有其对应的堆栈函数。

技术总结:堆栈+函数构造+log写入文件=好的调试系统。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: