第三章 给我十分钟

十分钟的第一分钟,沈知行没有改代码。

他让马骏把演示重新跑了一次。

高明远看了眼手表:“刚才不是已经出问题了?”

“留一份完整的。”

“日志不是有吗?”

“有结果,还要有过程。”

马骏没再问,照着原来的参数启动。蓝色曲线再次上扬,等待数增加,绿色圆点一个接一个消失。

这次没人鼓掌。

刚才举手机的学生默默把镜头压低了,觉得自己像在参加一场需要保持肃静的告别仪式。

沈知行盯着屏幕,等到某个数字跳过阈值,伸手按停。

“这里。”

马骏凑近。

同一个任务标识,出现了四次。

第一次还没执行完,第二次已经带着重试标签进来,第三次把第二次当成新请求,第四次则干脆绕过了原有的等待。

“它自己又发了自己?”马骏问。

“对。后面的人以为前面没人,前面的人还在门口找钥匙。”

周野在后面听得点头。

高明远也点了一下,接着意识到自己不该跟周野用同样的方式参与技术讨论,便伸手拿起水杯。

“重试本身没错。”沈知行把鼠标挪到另一处,“但你们两个地方看时间的方式不一致。一个认经过了多久,一个认现在几点。遇到这个场景,判断先后就乱了。”

马骏看了片刻,吸了口气。

这段代码是不同的人接过的。

写第一版的人已经去了别的项目,后续合并时,每个人都只负责自己那块。单独看,谁也不像写了个会让全系统停下来的东西。

“原来在这里。”

“还有回收计数。只改一个地方,过会儿还会堆。”

沈知行拉开两个窗口,把需要调整的几处标出来。

他下手并不花哨。

没有电影里滚满屏幕的绿色字符,也没有一边接电话一边盲打的表演。该停下看条件的时候,他就停,改完一处再核一下旁边的调用。

周野低头看手机上的计时。

两分四十七秒。

他本来想说句加油,想起上次刘成在游戏里只剩最后一丝血,他也是这么加的,最后挨了一枕头。

于是,他决定保持安静。

何敏站在侧面,正在看那份临时记录。机器型号、任务分布、原版本位置,都写得很清楚。

她见过不少优秀的毕业生。

有人会在介绍项目时把自己的贡献讲得特别大,一问具体分工,才知道核心框架是学长做的。有些真正做过的人,表达又跟不上,成果明明在手里,却很难让面试官愿意多给十分钟。

眼前这个学生倒像已经处理过太多次扯不清的事情。

先把什么是谁的,在哪里改过,最后怎么证明,全放在明面上。

她把那页记录的标题看了一遍,没有拍照,只记下了姓名。

沈知行。

第四分钟,修改完成。

马骏重新启动。

高明远稍稍往前走了一步,鞋尖碰到电源线,又立刻收了回去。

屏幕亮起来。

蓝色曲线重新爬升,负载继续增加。慢请求混进任务流,等待数涨了一段,随后稳住。

绿色圆点没有再少。

马骏盯着那排状态,手指悬在键盘上,迟迟没落下。

“再加一点。”沈知行说。

马骏把负载往上调。

队列缓慢增长,处理也在继续,整个系统终于表现得像一群正常干活的人,谁没做完就老老实实等着,没人拿着四张同样的单子去挤门。

一分钟过去。

没有提示音。

两分钟过去。

依然正常。

高明远放下水杯,脸上重新有了笑。

“所以说,我们这套架构本身是很扎实的。刚才只是个小细节——”

“还有三分钟。”沈知行说。

高明远的话停住。

“不是修好了吗?”

“修故障够了。你们想不想看看,为什么它原来跑得不算快?”

马骏猛地转头。

高明远没马上答。他担心再开一轮出新的问题,可对面澜海的人还站着,现在拒绝,又像承认自己的展示只能到这儿。

“你有什么想法?”

沈知行指了一下任务列表。

“这些事情现在共用一条队列。很快能做完的,和需要等外面回应的,都挤在一起。可以先做个小范围分流,只用现有模拟数据,不碰业务模块。”

“这会改动多少?”

“我新写个外置的调度小层。单独文件,随时拿掉。”

他看向马骏。

马骏先问高明远:“隔离目录内再试一下?”

高明远点头。

沈知行新建文件,没有把它混进原工程。

这个想法他前世做过远比现在复杂的版本。眼前只需要展示最小的一部分,而且未来实验室里已经跑出了合适的入口。

他仍然把边界写清楚。

晟川系统修复完成。

附加验证,独立示例。

马骏读到这一行,抬头看了他一眼,没说话。

高明远却多看了一秒。

第八分钟,第二轮测试开始。

大屏幕被分成两块。

左边是刚修好的版本,右边加了新的调度示例。两边输入一样,运行的还是同一批模拟任务,谁也没偷偷少算一半。

曲线一点点拉开。

一个原本已经转身的学生被同伴拽了回来。

“你看。”

“哪个?”

“右边。”

“右边数字少了,是不是变慢?”

马骏正好听见,难得有心情解释:“这是等待时间,少才好。”

学生点头,又问:“那左边刚才为什么写领先?”

马骏转回去看电脑,没有回答。

周野把那块宣传牌往桌子下方挪了挪。

先避避风头。

计时器走到九分二十秒,沈知行停下输入,把手离开键盘。

“别急着报数据,先跑完这一轮。”

马骏点头。

他看得出差距已经很清楚,最慢那批请求的等待被压下去了,整体处理量也在上升。更重要的是,原先那些时不时突然冒出来的长停顿少了。

每一项单看都还能解释。

放在一起,却让人不由自主地重新打量旁边这张学生脸。

计时器满十分钟。

周野张了张嘴。

沈知行侧头:“怎么了?”

“没什么,我本来想报时。”

“那你报。”

“现在是,找工作时间到。”

旁边两个学生笑出声。

高明远没有笑。他朝何敏转过身,准备说些什么,何敏却先抬手指了指电脑。

“能不能再跑一次原来的条件?”

她问的是马骏。

语气不冲,也没装作自己看得懂所有代码。她只想确认,眼前这个差距确实是同一件事前后发生了变化。

“可以。”沈知行说。

马骏把配置重新载入。

第二轮、第三轮。

数据不完全相同,趋势却一致。

反倒是其中一次表现太好,沈知行主动让马骏删掉了截图。

“那轮缓存没清,别拿那个说事。”

何敏看向他。

高明远也看了过来。

马骏已经准备点保存的手停住,随后重新运行,老实把那个过于漂亮的结果关掉。

这一次,数据没那么夸张。

但照样好看。

何敏拿出手机,对着空白的拨号界面想了两秒,走到稍安静的地方。

周野跟着看了一眼,小声问:“她是不是叫人来收电脑?”

“应该不是。”

“我主要担心你刚才修太好了,人家让你把电脑也赔了。”

沈知行笑了一声,拿起那瓶水。

水已经不凉,瓶身被周野捏瘪了一点。他喝了几口,才发觉自己确实渴。

马骏把完整日志导出,按版本分成几个文件夹。做完以后,他没急着把机器转回展台外侧,而是将那份临时记录读了一遍。

“你留个联系方式吧。”他说,“后面有不懂的,我想问问。”

“可以。工作时间问。”

“你不是还没工作吗?”

“所以现在都是休息时间。”

马骏愣了一下,随即笑了。他把自己的名片递过来,纸角稍微皱着,背面还写着一个上次测试用的端口号。

沈知行没嫌弃,接过放进包侧袋。

高明远终于插上了话。

“小沈,你这个基础,比简历上表现出来的好。这样,我们单独再聊一聊岗位。”

他这回没有叫“同学”。

沈知行看了眼电脑:“先把改动包给他留好。”

“这些让马骏处理就行,我们谈你的发展。”

“发展一会儿再谈,东西得交代明白。”

高明远伸出去的手只好收了回来。

沈知行把修复部分逐条指给马骏,哪处为何改、怎么恢复、后续还要测哪些场景,都说得简短。附加验证单独保存,演示权限到今天为止,正式使用另谈。

马骏一条条记。

记到后面,他把本子翻了页,发现背面是昨天的出差报销单。车票二等座,晚饭二十三块,住宿申请还停在待审批。

他想撕下来,沈知行摆了摆手,让他接着写。

“拿回去别直接替换整个项目。今天这里只有这些任务,其他情况你得补测。”

马骏连忙点头,又问如果有人催着今晚发版怎么办。

“把还没测过的列出来,让催的人看。”

“他要是说这不重要呢?”

沈知行瞥了一眼站在旁边的高明远,语气仍然平常:“那就请他把不重要写在这张单子上。”

马骏低头,在最后一行画了个小方框。他画得很认真,留出的空白足够签一个完整的名字。高明远看见了,转身去整理那摞已经整理过两遍的宣传册。

旁边负责收材料的女孩坐在刚才那张椅子上,终于把黑皮鞋悄悄松开了一点。她看着两个工程师在桌前交流,觉得展台今天总算开始干点和技术有关的正事。

第三轮测试结束。

马骏把结果抄进记录,刚准备开口,何敏已经回来。

她手里的电话还没挂。

“沈同学,方便占用你几分钟吗?”

沈知行看着她工作证上的名字。

何敏,澜海科技。

“什么事?”

“我们负责云计算的技术同事,想跟你确认几个问题。”

她把手机稍稍抬起,屏幕上显示着正在接通的内部会议。

高明远笑道:“你们也感兴趣?我们今天本来就是——”

“关于这段独立示例。”

何敏把话说完,停了一下,又补了一句。

“我问过负责人的意见,可以直接跟作者聊。”

她没有看高明远。

沈知行拧上瓶盖,把水放到一旁。

“可以。”

手机另一头传来翻纸的声音,随后是一个略哑的男声。

“你好,我叫梁岳。先确认一件事,刚才那份新文件,是你现场写的?”

“是。”

那边安静了片刻。

“你现在,还在学校里?”

沈知行抬头,看见体育馆墙上的毕业生就业服务横幅。

“在。”

“方便下午到我们办公室一趟吗?”

周野站在旁边,听见这句,慢慢看向自己手里的三份招聘宣传册。

他今天出门的时候,想的是能不能留下简历。

有的人好像直接把办公室叫过来了。