第十八章 七十二小时(2/2)
方泽发来消息:“內存泄漏。很慢,每小时大概增长0.3%,但如果持续下去,预计在第六十小时左右会撞到上限。“
左城一个激灵坐起来,打开电脑远程连入基站调试系统。
方泽说得没错。嵌入式平台的內存占用在以极其缓慢的速度上升——每小时0.3%,在短时间內完全感觉不到,但七十二小时就是超过20%的增长。一旦內存占满,系统要么变慢要么直接崩溃。
“定位到了。“方泽在凌晨四点二十分又发来一条消息,“干扰识別模块的缓衝区没有做循环覆写,每识別到一次干扰就分配一小块新內存记录日誌,但记录完之后没有释放。常规测试时间短看不出来,长时间运行就累积了。“
左城闭了一秒钟眼。
这是他自己写的代码里的bug。一个半小时赶工写出来的模块,测试不够充分,漏掉了內存释放。
“能热修復吗?“他问。热修復是指不重启系统的情况下在线打补丁——如果必须重启,七十二小时测试就得从头计时。
方泽回了两个字:“能。但需要你这边远程把补丁包编好,我来推送。“
左城用了十五分钟写完补丁——把缓衝区改成环形结构,固定大小,新数据自动覆盖最老的数据,內存占用恆定不变。方泽远程推送,热修復成功。
內存占用曲线立刻走平了。
凌晨四点四十二分,一切恢復正常。
左城靠在椅背上,后背全是冷汗。
如果方泽没有在凌晨四点发现这个问题,等到第六十小时內存崩溃再处理,七十二小时测试就废了,环节二的期限也会变得极其紧张。
他给方泽发了一条消息:“谢了。这个bug是我的锅。“
方泽回了一句:“写代码的人都会有bug,重要的是发现得早。睡吧,后面我盯著。“
左城没有再睡。他坐在黑暗的宿舍里,盯著电脑屏幕上缓慢跳动的运行数据,一直看到天亮。
第七十二小时。
十一月十三號上午十点。
左城、方泽和老吴三个人站在基站设备间里,盯著监控屏幕上的最终报告。
连续运行72小时。处理用户信號总量:4,217,603条。信道估计平均精度:超出基准值34.2%。系统崩溃次数:0。性能骤降次数:0。內存泄漏:已修復,修復后运行36小时无异常。
老吴嘬了口保温杯里的浓茶,点了点头:“过了。漂漂亮亮地过了。“
左城看著屏幕上的数字,什么都没说,只是长长地吐了一口气。
光幕在意识中亮起:
【主线任务链·通信破局·环节二:完成!】
【实测验证评价:优秀(72小时零崩溃,性能超標34.2%)】
【奖励发放中——】
【解锁叶片:通信系统工程 ?】
【积分+10(当前积分:23)】
【因评价等级为“优秀“,环节三期限额外延长7天。】
【环节三即將解锁——】
二十三个积分。五枚叶片。
左城关掉面板,看了方泽一眼。方泽靠在机柜上,双手插兜,面无表情,但嘴角有一个极其轻微的弧度。
“走。“左城说,“回学校。四天后决赛。“