将近凌晨。
215宿舍里很安静。
陈拙坐在书桌前,手里的钢笔在纸上画下一条平滑的曲线。
他停下笔,端起旁边的水杯喝了一口水。
墙那边的动静越来越大了。
「大勇。」
陈拙放下水杯,看了一眼还在地上鼓捣那些硬体的王大勇。
「楚戈平时也这麽砸键盘麽?」
王大勇正拿着块抹布擦他那块旧主板,头也没擡。
「楚戈那小子平时敲键盘也就是个打字机的动静,今晚这架势,跟拆迁差不多,估计是代码写卡壳了,有些急眼了。」陈拙无奈的摇了摇头。
他低头看着自己纸上的公式,脑子里却在盘算着那尚未购买的雷射印表机。
216宿舍。
没开大灯。
只有楚戈桌面上那显示器亮着。
屏幕的光打在楚戈的脸上,忽明忽暗。
桌上乱七八糟地堆着几本翻开的计算机砖头书,《C Primer Plus》的封皮底下压着一个空了的红牛罐子。楚戈叼着棒棒糖,眼睛死死盯着屏幕上密密麻麻的代码。
黑色背景,白色字符。
【写到这里我希望读者记一下我们域名 海量好书在 101 看书网,101.等你寻 】
他按了一下键盘上的F9键。
屏幕下方瞬间弹出一个小窗口,紧接着是一大排刺眼的红色错误提示。
超时。
还是超时。
楚戈烦躁地把嘴里已经被咬的面目狰狞的棒棒糖棍子吐进旁边的易拉罐里。
他接的这个活儿,是给一个刚起步的商业图库网站做底层检索优化。
论坛上的悬赏金额是一千五百块。
要求很简单,把现有的并发检索速度提升一倍。
楚戈一开始觉得这钱挺好挣。
那帮初创公司的程式设计师写的东西,冗余太多,他随便精简一下逻辑树就能交差。
但他动手改了之後才发现,这套数据的底层架构就是个烂摊子。
牵一发而动全身。
为了解决数据对撞,他加了一个嵌套循环。
结果就是,数据只要一跑起来,就会在第三层逻辑里陷入死结。
无数的变量在那个狭窄的通道里互相死锁,谁也出不来。
楚戈双手在键盘上飞快地敲击。
他把刚才写的那一段全删了,换了一种堆栈的方式重新往里套。
敲完,再编译,再运行。
风扇开始加速。
屏幕卡顿了三秒钟。
然後,熟悉的红字再次弹了出来。
楚戈骂了一句脏话。
他伸手抓了抓本来就乱蓬蓬的头发,身体往後一靠,椅子发出沉闷的响声。
对面的床上。
陆嘉躺在薄被子里。
耳朵里塞着两团海绵耳塞。
但他依然能听见声音。
机械键盘的敲击声,像是一把钝钝的锯子,在他原本就紧绷的神经上来回拉扯。
陆嘉闭着眼睛。
胃里一阵阵地往上翻,太阳穴突突地跳着疼。
白天在高数课上写错那个符号的画面,像走马灯一样在他脑子里转。
记忆在模糊。
反应在变慢。
这种脱离掌控的感觉,让他本能地感到恐慌。
他需要睡眠。
只要睡一觉,让脑子重启,一切就能恢复正常。
可是底下的声音就是不停。
键盘声又急促了起来。
随後是楚戈暴躁的嘟囔声,以及椅子腿摩擦地面的刺耳声。
陆嘉的呼吸开始变粗。
他翻了个身,面朝墙壁。
试图把被子蒙在头上,捂住耳朵。
没用。
那种嗡嗡的机箱共鸣声,仿佛是从墙壁里透出来的。
五分钟。
十分钟。
键盘声越来越大,楚戈敲击的力度明显带着情绪失控的泄愤感。
陆嘉猛地睁开了眼睛。
黑暗中,他的眼眶红得吓人。
他一把扯掉耳朵里的海绵耳塞,扔在枕头边。
掀开被子。
坐了起来。
冷空气贴着单薄的纯棉睡衣吹透了进来,但他毫无察觉。
陆嘉挪到床边,没有找拖鞋。
光着脚踩在铁架床的梯子上,一步步爬了下来。
楚戈正对着屏幕抓耳挠腮。
他刚刚试了第四种算法,依然在死循环里打转。
他拿起桌上的糖盒,抖了一下,里面空了。
楚戈烦躁地把糖盒捏扁,扔在地上。
准备重新把那段报错的代码删掉重写。
身後突然多了一个人影。
楚戈从显示器的反光里看到了站在背後的陆嘉。
他吓了一跳,转过头。
看着陆嘉光着脚站在地上,脸色惨白,眼底下是一大片乌青。
楚戈张了张嘴。
原本的烦躁被一丝心虚压了下去。
他知道自己今晚动静确实太大了,停下手里的键盘,语气有些尴尬。
「吵着你了?」
楚戈指了指屏幕。
「我这儿卡了个bug,马上就好,你再忍. ....」
陆嘉根本没看他。
他的目光死死锁在屏幕上那滚动的几百行代码上。
他看不懂那些英文单词拚凑起来的语法,不知道什麽是指针,不知道什麽是内存分配。
但他能看懂里面夹杂的逻辑符号和变量代换。
他盯着看了一分钟。
眼球跟着屏幕上的光标快速移动。
突然,陆嘉动了。
他伸出手,从楚戈的桌面上扯过那本皱巴巴的草稿本。
抓起旁边的一支原子笔。
楚戈愣了一下,手悬在半空,没去拦。
陆嘉把草稿本按在桌角,手腕微微有些发抖,笔尖在纸上快速划动。
没有任何停顿和思考。
一行行复杂的数学符号在纸上显现出来。
没有一行是代码。
全是纯粹的代数公式。
十几秒钟後。
陆嘉停下笔。
他把那张纸撕下来,轻轻放在楚戈的键盘旁边。
「你的边界条件设错了。」
陆嘉的声音很小,带着浓重的鼻音,像是快被逼哭了。
他的肩膀微微发抖。
「你让变量在两端同时收敛,中间的数据会一直对撞,这是一个死结。」
楚戈愣住了,想反驳。
「我不懂你这上面写的是什麽。」
陆嘉低下头,指着自己刚写的那张纸,语气里全是深深的疲备和哀求。
「但你把它改成这个拓扑矩阵,数据就不会再堵死了。」
陆嘉往後退了一步,眼眶通红。
「你把它改了,别再敲了行不行....我想睡觉。」
楚戈看着陆嘉那副摇摇欲坠的样子。
喉咙里的话被硬生生咽了回去。
他低下头。
目光落在那张草稿纸上。
他是极客,代码写得很溜,但数学底子只能算过得去。
他看着纸上那几个巧妙的拓扑变换步骤。
第一眼没看懂。
他在脑子里顺着公式推了一遍。
楚戈的瞳孔微微收缩了一下。
一种极其精妙的数学代换。
它直接跳过了计算机死磕的陷阱,在源头上把那个无限循环变成了一个有确定解的方程。
楚戈咽了口唾沫。
他没说话,默默地拿过那张纸,放在滑鼠垫旁边。
双手重新放回键盘上。
照着草稿纸上的数学逻辑,开始修改代码。
把嵌套拆开,代入拓扑矩阵的参数。
两分钟後。
修改完毕。
楚戈深吸了一口气。
手指按下了F9。
没有报错的小窗口弹出来。
黑色的命令提示符框里,光标闪烁了一下。
紧接着,一行行数据像瀑布一样顺畅地刷了下来。
没有卡顿。
没有超时。
原本需要跑半天还会死机的数据包,在五秒钟内,全部检索完毕,给出了最终的反馈结果。运行成功。
楚戈僵在椅子上。
他看着那个代表成功的「0」。
刚才那种怎麽都解不开的焦躁和烦闷,在这一刻被一种深深的无力感所取代。
他花了一晚上,试了四种方法都没搞定的死局。
人家站在後面看了一分钟,委屈巴巴地写了个公式就破了。
楚戈转过头。
陆嘉已经转过身,踩着梯子往床上爬了。
就在这时。
嗡!
楚戈脚下的电脑机箱突然发出一声凄厉的尖叫。
声音大得刺耳。
紧接着,机箱面板上的指示灯开始狂闪。
一股焦糊的味道从散热孔里喷了出来。
楚戈脸色一变。
他猛地低头看去。
程序虽然跑通了,但陆嘉给的那个拓扑矩阵,在瞬间调动了庞大的并发数据。
那二手奔腾3的CPU,在刚才那几秒钟里,负载直接拉满了。
老化的散热风扇根本压不住瞬间飙升的温度。
主板发出了警报。
如果再不管,要麽烧晶片,要麽电源起火。
楚戈没有犹豫,弯下腰,一把拔掉了插排上的电源线。
屏幕瞬间黑了。
风扇的尖叫声戛然而止,变成了慢慢降速的嗡嗡声。
屋子里陷入了黑暗,只有窗外的一点月光透进来。
安静。
突如其来的安静。
楚戈蹲在地上,手还抓着电源线。
他能感觉到机箱外壳传来的烫手温度。
他站起身。
陆嘉刚爬回床上,正准备躺下。
被刚才这一下弄得有些发懵,坐在床上往下看。
楚戈站在梯子旁边。
在黑暗中站了一会儿。
楚戈看着床上那个单薄的身影,稍微低了低头。
「刚才.....对不住。」
楚戈的声音很低,很别扭,但透着实打实的真诚。
「你刚才写的那张纸,很厉害。」
陆嘉抓着被子,没说话。
「这活儿的运算量太大,我的机箱扛不住了。」
楚戈弯腰,把滑鼠键盘拔下来,又拔掉显示器的数据线。
他伸手抱起那个沉甸甸,还发着烫的铁皮机箱。
「我得去对面找王大勇借风扇吹一下,今晚就在他那边弄了。」
楚戈抱着机箱往门口走。
手搭在门把手上的时候,他停了一下。
回头看了一眼陆嘉。
「你睡吧,今晚不会再吵你了。」
门被拉开。
走廊里的灯光漏进来一条缝。
楚戈抱着机箱,轻手轻脚地走了出去,用肩膀把门慢慢顶上。
哢哒一声轻响。
门关严了。
216宿舍彻底陷入了安静。
只有陆嘉床头那个老式闹钟,发出轻微的滴答声。
陆嘉慢慢躺了下去。
拉起被子,盖在身上。
没有了键盘声,没有了主机嗡嗡声,连床铺都不再震动了。
他终於得到了他渴望了一整晚的安静。
按理说,他现在应该可以睡个好觉了。
但是,没有。
陆嘉睁着眼睛,看着黑乎乎的天花板。
他脑子里很清醒。
清醒得有些可怕。
刚才为了解决楚戈那个死循环,他的大脑在短时间内被重新启动了起来。
现在,那辆在脑海中的狂暴机器停不下来了。
他刚才扫视屏幕的那几分钟里,不仅看到了局部的死锁。
他还看到了楚戈那套代码里,整个宏观架构上的漏洞。
虽然局部跑通了,但那种底层的检索方式,在更大的数据量面前,必然会发生左旋极值和右旋极值的对撞。陆嘉的呼吸开始变得不均匀。
就像一个极度洁癖的人,看到了一幅挂歪了的画。
虽然画没有掉下来。
但他知道它在那里,而且是歪的,如果不把它扶正,脑子就会一直想着它。
陆嘉在床上翻了个身。
紧紧闭上眼睛。
但脑子里全是那些没有闭环的变量。
他甚至开始在脑子里自动补全剩下的半个方程。
停不下来。
二十分钟过去了。
陆嘉猛地掀开被子。
在彻底的安静中,他绝望地发现。
他还是睡不着。
对门。
215宿舍的门被人敲响了。
王大勇刚把主板放下,拉开门。
楚戈抱着冒热气的机箱站在门外,一头大汗。
「大勇,帮个忙。」
楚戈一边往里走,一边喘着气。
「电脑快烧了,借你风扇吹吹。」
陈拙坐在椅子上,回过头。
他看着地上那个敞着侧板正往外散发着刺鼻焦糊味的机箱,又看了看满头大汗,喘着粗气的楚戈。「大半夜能把CPu跑冒烟。」
陈拙手里转着那支黑色的笔,语气里带着点调侃。
「你用这二手奔腾3算什麽呢?模拟核爆?」
王大勇蹲在地上听乐了,跟着搭腔。
「就是,这矽脂都快烤化了,你小子干嘛了?」
楚戈一屁股瘫坐在王大勇旁边的空椅子上,烦躁地搓了搓脸,重重地叹了口气。
「别提了,在黑客论坛接了个私活,给一个图库网站做底层数据并发检索的优化,悬赏一千五百块钱。」楚戈指了指那还在散发余热的机箱,满脸的郁闷。
「数据量太大,我本来卡在一个嵌套死循环里出不来,结果刚才敲键盘动静太大,把我的舍友陆嘉给吵疯了。」楚戈回想起刚才那一幕,语气里带着点不可思议。
「那小子光着脚爬下来,红着眼圈,给我甩了个特别牛的拓扑代入矩阵,公式一敲进去,死结瞬间就解开了。」说到这,楚戈烦躁地抓了抓头发。
「但坏就坏在这儿,局部死锁是解开了,可并发数据瞬间拉满,整个数据流全涌进来了,我这破风扇根本压不住温度,直接宕机。」楚戈擡头看着陈拙,满脸无奈。
「而且这还没完,他那个矩阵代进去之後,我现在这套平铺直叙的宏观架构根本收拢不住这麽庞大的数据,就算大勇帮我把温度降下来,硬跑也得跑死。」陈拙安静地听完这段前因後果。
他没多问,也没有评价那个悬赏。
他只是伸出手,拿过楚戈手里那个揉得皱巴巴的草稿本。
扫了一眼上面楚戈画的那些乱七八糟的流程线。
随後,陈拙随手在草稿纸背面,画了一个极其简洁的倒树状图。
线条很乾净。
「从下往上切,逆向拓扑。」
陈拙把本子递过去,语气平缓。
「底层的数据不用全部调用,只设定边界阈值,用这种树状架构去跑,你这机子就能吃得下。」楚戈看着那个图。
眼神瞬间变了。
他盯着纸上的线条,脑子里快速模拟了一遍数据的走向。
这种从根部往上剥离的思路,直接避开了最耗费算力的平铺式检索。
楚戈擡起头,看陈拙的眼神透着惊讶。
就在楚戈发愣的时候。
215的门没关严。
被一只手从外面推开了。
陆嘉穿着皱巴巴的睡衣,穿着拖鞋站在门口。
他手里攥着几张写满推导的草稿纸,眼底的红血丝比刚才更重了。
屋里三个人同时看向他。
陆嘉咬着牙,越过王大勇,走到楚戈面前。
把手里的草稿纸拍在桌子上。
「如果不把剩下的那半个方程解完....」
陆嘉的声音带着一丝绝望的执拗,眼眶红红的。
「我脑子里全都是错误的变量在打架。」
他盯着楚戈。
「我根本睡不着。」
(爱腐竹小说网http://www.ifzzw.com)