《疯狂的程序员》29
见屏幕一黑,绝影也不知dao是怎么回事,以前在公司测试的时候从来没出现这zhong情况,反正肯定是程序出了问题,坏就坏在还是全屏,图像一黑,整个屏幕就黑了。他用眼角的余光瞟了瞟周总,还好周总正在兴致bobo地给医生们介绍KIPACS是如何如何好,只有医院领导一个人发现了问题。他赶忙退出全屏关掉KIPACS,再次打开。
医院领导正要开口,绝影抢在他前面说:“这是正常现象,一般KIPACS用久了就要重启一次。”那言外之意就是:“这黑屏的事,没啥大不了的,我们早就知dao了。并且这又是不能解决的,要能解决我们还不早就解决了。就比如手机一样,就算是NokiaN95,够高档了吧,可是你能拿它放DVD吗?放不了,还是将就着用吧。所以还是麻烦你们偶尔重启一下吧。”
周总听他这么说,回过tou来,丈二和尚摸不着tou。
最后医院领导还是在验收报告上签了字,一行人撤回公司的时候,周总问:“小绝阿,那个KIPACS重启是怎么回事呢?以前怎么没听你说过?”
绝影哪敢给他讲很话,忙说:“没什么大不了的,回去我调研一下,估计还有些小BUG。”
在公司zuoCASE就是这样,虽然公司要求所有BUG的发现和修正都要最终ti现到ruan件开发文档里,但实际cao2作起来,往往是程序员发现了自己的BUG能隐瞒下来的都隐瞒下来,自己抽个时间或者加班把它修改了,这样给领导的印象要好一些。这和现在很多小煤窑的zuo法差不多,虽然上tou三令五申要杜绝安全隐患,但事故总还是要发生的,虽然又说发生事故要如实上报及时补救,但小老板们总是能隐瞒不报就隐瞒不报,自己私下chu1理了事。你想真要是如实上报你一个小小煤窑一年12个月就报了二十多个事故上去明年的开采许可证还怎么可能拿得到?
绝影说是小事,回到公司又看了半天都还是没搞明白,问题就出在调窗上,这个调窗原理说简单点其实就是把图像的一些属xing调整一下然后重新绘制到DC上,小幅度地调整都没有问题,就是大幅度chang时间调整最后显示图像的bu分都会黑掉。先他以为是对WM_PAINT消息的chu1理有问题,这个就比较麻烦,系统经常要发送WM_PAINT这个消息,在里面下个断点或者加个MessageBox就一直要不停地弹出。搞了半天还是找不出个所以然。你想要是真是对这个消息chu1理出现了问题,那应该一早调窗就有问题才对。
调试了几次,绝影发现系统变得越来越慢,打开任务guan理qi,乖乖,KIPACS居然占用了300多M内存。要知daoKIPACS刚启动时不过只占用了17M内存。看样子像是内存xie漏。这样想,他继续调窗,调一下发现内存涨上去可又没降下来,果然是调窗的时候发生了内存xie漏。
知dao了原因解决起来就要快得多,原来是GetDC获取DC后没有使用ReleaseDC把它释放,这bu分在WM_PAINT消息中,WM_PAINT消息又频繁发送,所以那内存xie漏起来真是要命得很。
加上ReleaseDC,KIPACS终于可以liu畅地调窗,看看任务guan理qi,内存占用基本稳定在20M。
搞完这个BUG,绝影看看时间,已经是晚上9点多,公司的人早不知dao什么时候都走*光了。这次的事情还是给绝影留下了shen刻的教训以至于在很常一段时间,别人问他:“影tou,你看看我这程序,怎么老是出问题阿?”他都会跟别人说:“先看看是不是有内存xie漏。”
问题解决了,等到第二天周总来到公司,绝影便轻描淡写地对周总说:“昨天那个KIPACS需要重启的问题我已经解决了,是个小问题,内存xie漏。”
所以什么叫打zhong脸充胖子。明明昨天花了5,6个小时憋得几乎走投无路终于解决出的问题现在在老总面前却轻描淡写地说:“是个小CASE而已。”想BOSSLiu也许也是这样,自己不知dao熬了几个通宵脑细胞不知杀死多少终于给zuo出个多线程出来,却轻描淡写地说:“多线程嘛,那个还不容易,二三十分钟就搞出来了。”两个人都是爱chui牛,好像自己能耐大得不得了,什么技术阿方法阿算法阿解决方案阿还不一切都尽在掌握中,原以为牛这样chui了,大家就决定自己有多了不起,结果最后受苦的是自己,开心的是老板,老板们正是利用了这zhong心理,他们会说:“不错不错,这么个大问题能这样快地解决,这个程序里面还有二十多个BUG,都是小问题,给你一天的时间够了吧。”
周总对绝影反映的问题还是比较关心,他说:“内存xie漏这个问题是广泛存在的阿,这zhong问题又最不好调试。我给你介绍个ruan件吧,BoundsCheck,专门测试内存xie漏。”
在以前,绝影绝对不会去关心别人介绍的什么ruan件,首先那ruan件是别人介绍的,自己又不熟悉,ruan件好不好阿,怎么用阿都要自己去摸索,特别是这个BoundsCheck一听就知dao是个英文版的ruan件,还要拿金山词霸去翻译菜单或者网上到chu1去找汉化版,本来以为用这个ruan件能极大地提高劳动生产率,结果反而花在学习上的时间都远远超过了它提高的劳动生产率,这叫“磨刀误了砍柴工”
可这次绝影还是比较慎重,昨天虽然把问题解决了但实在把自己搞得太痛苦,也幸亏昨天开了任务guan理qi发现了问题,要不说不定把代码跟踪到太平洋还不知dao问题在哪里。
去网上下个BoundsCheck6forVC,原来是大名鼎鼎的Numega公司出的,想能出SoftICE这样的ruan件的公司出的东西还能有假吗?就比如今天微ruan宣布出了一个新的cao2作系统,那还不成为各大网站的tou条新闻。所以不仅是衣服,就是ruan件也有个品牌效应。
那天在公司又调研了一整天,绝影第一次知dao了“纯化测试”这个词。以后每次周总说:“OK,明天我们进行Purification。”绝影就跟大家翻译dao:“好,明天我们进行纯化测试,没装BoundsCheck的把BoundsCheck装上,不会用的找我。”
最近几天BOSSLiu在公司颇为得意,看来医院对KIREGIS试运行非常满意,要他修改的地方也很少。KIREGIS的代码一直是BOSSLiu在负责,绝影从来没去看,这也好,世界上最幸福的事情就是你把事情jiao给别人别人zuo好了jiao给你居然和你的要求一模一样,gen本不用改。因为没什么事zuo,BOSSLiu正好潜心
见屏幕一黑,绝影也不知dao是怎么回事,以前在公司测试的时候从来没出现这zhong情况,反正肯定是程序出了问题,坏就坏在还是全屏,图像一黑,整个屏幕就黑了。他用眼角的余光瞟了瞟周总,还好周总正在兴致bobo地给医生们介绍KIPACS是如何如何好,只有医院领导一个人发现了问题。他赶忙退出全屏关掉KIPACS,再次打开。
医院领导正要开口,绝影抢在他前面说:“这是正常现象,一般KIPACS用久了就要重启一次。”那言外之意就是:“这黑屏的事,没啥大不了的,我们早就知dao了。并且这又是不能解决的,要能解决我们还不早就解决了。就比如手机一样,就算是NokiaN95,够高档了吧,可是你能拿它放DVD吗?放不了,还是将就着用吧。所以还是麻烦你们偶尔重启一下吧。”
周总听他这么说,回过tou来,丈二和尚摸不着tou。
最后医院领导还是在验收报告上签了字,一行人撤回公司的时候,周总问:“小绝阿,那个KIPACS重启是怎么回事呢?以前怎么没听你说过?”
绝影哪敢给他讲很话,忙说:“没什么大不了的,回去我调研一下,估计还有些小BUG。”
在公司zuoCASE就是这样,虽然公司要求所有BUG的发现和修正都要最终ti现到ruan件开发文档里,但实际cao2作起来,往往是程序员发现了自己的BUG能隐瞒下来的都隐瞒下来,自己抽个时间或者加班把它修改了,这样给领导的印象要好一些。这和现在很多小煤窑的zuo法差不多,虽然上tou三令五申要杜绝安全隐患,但事故总还是要发生的,虽然又说发生事故要如实上报及时补救,但小老板们总是能隐瞒不报就隐瞒不报,自己私下chu1理了事。你想真要是如实上报你一个小小煤窑一年12个月就报了二十多个事故上去明年的开采许可证还怎么可能拿得到?
绝影说是小事,回到公司又看了半天都还是没搞明白,问题就出在调窗上,这个调窗原理说简单点其实就是把图像的一些属xing调整一下然后重新绘制到DC上,小幅度地调整都没有问题,就是大幅度chang时间调整最后显示图像的bu分都会黑掉。先他以为是对WM_PAINT消息的chu1理有问题,这个就比较麻烦,系统经常要发送WM_PAINT这个消息,在里面下个断点或者加个MessageBox就一直要不停地弹出。搞了半天还是找不出个所以然。你想要是真是对这个消息chu1理出现了问题,那应该一早调窗就有问题才对。
调试了几次,绝影发现系统变得越来越慢,打开任务guan理qi,乖乖,KIPACS居然占用了300多M内存。要知daoKIPACS刚启动时不过只占用了17M内存。看样子像是内存xie漏。这样想,他继续调窗,调一下发现内存涨上去可又没降下来,果然是调窗的时候发生了内存xie漏。
知dao了原因解决起来就要快得多,原来是GetDC获取DC后没有使用ReleaseDC把它释放,这bu分在WM_PAINT消息中,WM_PAINT消息又频繁发送,所以那内存xie漏起来真是要命得很。
加上ReleaseDC,KIPACS终于可以liu畅地调窗,看看任务guan理qi,内存占用基本稳定在20M。
搞完这个BUG,绝影看看时间,已经是晚上9点多,公司的人早不知dao什么时候都走*光了。这次的事情还是给绝影留下了shen刻的教训以至于在很常一段时间,别人问他:“影tou,你看看我这程序,怎么老是出问题阿?”他都会跟别人说:“先看看是不是有内存xie漏。”
问题解决了,等到第二天周总来到公司,绝影便轻描淡写地对周总说:“昨天那个KIPACS需要重启的问题我已经解决了,是个小问题,内存xie漏。”
所以什么叫打zhong脸充胖子。明明昨天花了5,6个小时憋得几乎走投无路终于解决出的问题现在在老总面前却轻描淡写地说:“是个小CASE而已。”想BOSSLiu也许也是这样,自己不知dao熬了几个通宵脑细胞不知杀死多少终于给zuo出个多线程出来,却轻描淡写地说:“多线程嘛,那个还不容易,二三十分钟就搞出来了。”两个人都是爱chui牛,好像自己能耐大得不得了,什么技术阿方法阿算法阿解决方案阿还不一切都尽在掌握中,原以为牛这样chui了,大家就决定自己有多了不起,结果最后受苦的是自己,开心的是老板,老板们正是利用了这zhong心理,他们会说:“不错不错,这么个大问题能这样快地解决,这个程序里面还有二十多个BUG,都是小问题,给你一天的时间够了吧。”
周总对绝影反映的问题还是比较关心,他说:“内存xie漏这个问题是广泛存在的阿,这zhong问题又最不好调试。我给你介绍个ruan件吧,BoundsCheck,专门测试内存xie漏。”
在以前,绝影绝对不会去关心别人介绍的什么ruan件,首先那ruan件是别人介绍的,自己又不熟悉,ruan件好不好阿,怎么用阿都要自己去摸索,特别是这个BoundsCheck一听就知dao是个英文版的ruan件,还要拿金山词霸去翻译菜单或者网上到chu1去找汉化版,本来以为用这个ruan件能极大地提高劳动生产率,结果反而花在学习上的时间都远远超过了它提高的劳动生产率,这叫“磨刀误了砍柴工”
可这次绝影还是比较慎重,昨天虽然把问题解决了但实在把自己搞得太痛苦,也幸亏昨天开了任务guan理qi发现了问题,要不说不定把代码跟踪到太平洋还不知dao问题在哪里。
去网上下个BoundsCheck6forVC,原来是大名鼎鼎的Numega公司出的,想能出SoftICE这样的ruan件的公司出的东西还能有假吗?就比如今天微ruan宣布出了一个新的cao2作系统,那还不成为各大网站的tou条新闻。所以不仅是衣服,就是ruan件也有个品牌效应。
那天在公司又调研了一整天,绝影第一次知dao了“纯化测试”这个词。以后每次周总说:“OK,明天我们进行Purification。”绝影就跟大家翻译dao:“好,明天我们进行纯化测试,没装BoundsCheck的把BoundsCheck装上,不会用的找我。”
最近几天BOSSLiu在公司颇为得意,看来医院对KIREGIS试运行非常满意,要他修改的地方也很少。KIREGIS的代码一直是BOSSLiu在负责,绝影从来没去看,这也好,世界上最幸福的事情就是你把事情jiao给别人别人zuo好了jiao给你居然和你的要求一模一样,gen本不用改。因为没什么事zuo,BOSSLiu正好潜心