出现。五十次,还是没出现。
他长舒一口气,把修复方案提交到SVN,在群里@陈末:“时间Bug可能解决了,是锁顺序的问题。你那边跑一下压力测试看看。”
陈末半小时后回复:“跑了二百次,零复现。应该是修了。但合并逻辑我优化了一下,减少了锁的持有时间,性能提升15%。新代码提交了。”
李君宪看着那条消息,忽然笑了。这就是团队的感觉:你解决一个问题,队友把它变得更好。像接力赛,一棒传一棒,朝着同一个终点。
窗外的天黑了。宿舍楼响起喧闹声,晚课的学生回来了。王浩推门进来,拎着两份炒面:“李哥,给你带了饭。别饿死了。”
“谢了。”李君宪接过,塑料饭盒还烫着。他掰开一次性筷子,扒了两口,油重盐也重,但很香。他边吃边看群,林薇发了遮罩图的最终版,叶晚回复说锯齿问题在她电脑上也不见了,苏语说预生成的音频做好了,内存占用28MB,没超预算。
一切都在向前走。虽然慢,虽然难,但在走。
吃完饭,他打开博客。好几天没更新了,后台有读者留言催更:“博主还活着吗?”“是不是放弃了?”“募捐了八千多,可别跑路啊。”
他新建文章,标题:
“5月3日:Bug,锁,以及一碗炒面”
他写道:
“还活着。没放弃。在修Bug。
“今天遇到一个诡异的Bug:时间系统会随机卡在奇怪的倍率。查了半天,发现是锁顺序的问题。两个线程,两把锁,获取顺序不一致,在极端情况下会死锁。改了就修了。
“开发就是这样,99%的时间在对付这些看不见的敌人:一个像素的锯齿,一声音频的变调,一行代码的死锁。它们很小,但能让你卡几天。你必须很有耐心,像在黑暗里摸钥匙,一把一把试,直到听见‘咔嗒’一声。
“但也有好消息。
“叶晚的磨损素材系统通过了测试,每次开局小店都会有些微不同,像真的被岁月打磨过。林薇的遮罩图解决了边缘锯齿,现在窗里窗外的光影过渡自然得像呼吸。苏语用新话筒录了古琴动机,五个音,却能变奏出整个世界。陈末优化了时间系统的性能,提升了15%。
“而我,在修完Bug后,吃了室友带的炒面。油很大,但很香。
“你看,开发不只是痛苦。也有炒面,有五个音的古琴,有像素的裂纹,有性能提升的百分比。这些细小
本章未完,请点击下一页继续阅读!