我的智商逐年递增 第263节

  “我懂了。”

  楚戈的声音有些发抖。

  “抛弃数据库的关系查询,把所有的关系表抽出来,在内存里维护一个稀疏矩阵,所有的查询,全部在内存里做向量相乘,算出结果后,再拿用户ID去数据库里提头像和名字。”

  “对。”

  陈拙应了一声。

  “但是有个问题。”

  楚戈的程序员思维迅速抓住了漏洞。

  “A认识B,B认识C,C又认识A,这在图论里是个环,如果向量一直乘下去,会不会无限循环,把算力耗死?”“楚戈。”

  陈拙在电话那头叹了口气,语气里带着点无奈。

  “这是工程问题,不是数学证明题,向量乘出来的结果里,凡是数值大于0的,你顺手用个哈希表把1D记下来,下次乘的时候遇到已经记过的,直接跳过不就行陈拙轻轻摇了摇头。

  “你是个写代码的,别指望数学公式连你拉屎用几格纸都算清楚,用点你程序员的常识好吗?”楚戈听着电话里那点调侃,突然咧开嘴乐了。

  “行,哥哥我承你这个情了,这回算我欠你的。”

  楚戈把那张泡面盖子折了两下,小心翼翼地塞进贴身的口袋里。

  “过完年回科大,我请你吃一个月的食堂小炒,先挂了,我得赶紧把这个底层的内存守护进程写出来。”没等陈拙说话,电话里传来了嘟嘟嘟的忙音。

  陈拙放下话筒,摇了摇头,嘴角带着一抹笑意。

  他转过身,走向厨房去拿碗筷,准备吃晚饭。

  距离泽阳市一千多公里外的京城。

  中关村附近的一栋破旧居民楼里。

  屋子里没开灯,只有三四显示器散发着惨白的光,窗外偶尔闪过几道绚烂的烟花,照亮了满地的烟头和吃剩的外卖盒。汪兴裹着一件棉服,整个人窝在电脑椅里,双眼布满血丝,死死盯着屏幕上的后日志。

  他们想在这个互联网的荒蛮时代,做一个真正意义上的实名制校园社交网站,点子是极好的,几个汪兴甚至已经靠着PPT拉到了一笔几十万的天使投资。但是技术瓶颈卡死了他们。

  明天就是大年初三,投资人要求看一个承载五百人同时在线的系统Demo。

  汪兴已经三天没合眼了。

  只要并发量一上来,好友的好友这个核心功能的数据库查询,就会像雪崩一样拖垮整个系统。屏幕右下角的MSN图标突然跳动了起来。

  汪兴布满血丝的眼睛动了一下,握着鼠标点开。

  是楚戈,那个远在徽州,被他拉来当免费技术外援的科大变态黑客。

  “老楚,别费劲了。”

  汪兴敲了一行字发过去,手指有些僵硬。

  “我们试了加缓存,试了建索引,没用,关系型数据库处理不了这种多级网状查询,硬件扛不住。”几秒钟后,楚戈发过来一个压缩包。

  只有不到Z0KB。

  紧接着,楚戈的消息弹了出来。

  “把你们之前的关系查询代码全删了,把这个C语言写的守护进程挂在服务器后。”

  汪兴愣了一下。

  “这是什么?”

  “一个内存级别的稀疏矩阵相乘工具。”

  楚戈的回复很简单。

  “你只要把你们的关系表导出一份纯文本塞给它,以后所有的好友查询,不用过数据库,直接发指令给这个进程,它在内存里算完,把好友ID数组返回给你。”

  汪兴看着那段话,有些摸不着头脑。

  但他现在已经走投无路了,死马当活马医。

  他接收了文件,解压,把源代码拖进编译器,粗路地扫了一眼。

  这一看,汪兴的冷汗哗的一下就下来了。

  代码极其精简,没有任何数据库连接的库文件,全是底层的内存指针操作和几个他看不太懂的一维数组循环相乘。里面没有一条SL语句。

  汪兴深吸了一口气,把编译好的执行文件挂到了测试服务器的后,然后把几万条测试用的关系数据塞了进去。进程悄无声息地启动了,占用内存不到五十兆。

  “跑个压测。”

  汪兴转头,对旁边另一个已经困得东倒西歪的王惠文喊了一声。

  王惠文迷迷糊糊地揉了揉眼睛,在键盘上敲下了一行压测指令。

  “模拟五百个并发请求,三级好友深度查询。”

  王惠文敲完回车。

  “兴哥,准备重启服务器吧,估计还是三秒钟前. ..…”

  话还没说完,王惠文的声音卡在了喉咙里。

  压测工具的进度条并没有像之前那样死死卡住,而是以一种肉眼几乎无法捕捉的速度,瞬间刷满。满屏的绿色。

  汪兴猛地坐直了身体,椅子发出不堪重负的嘎吱声。

  他死死盯着压测结果的汇总数据。

  请求完成数:500。

  失败数:0。

  平均响应时间:3毫秒。

  汪兴觉得自己眼花了,他转头看了一眼服务器的系统资源监控。

  在刚才压测的一瞬间,CPU的使用率仅仅跳动了一下,到了8%,然后又迅速回落到了1%。服务器连风扇都没来得及加速转动,查询就已经结束了。

  屋子里安静得只能听到机箱微弱的蜂鸣声。

  “兴哥..…”

  旁边的王惠文咽了口唾沫,指着屏幕的手都在抖。

  “这什么情况?数据库没转?”

  “没有过数据库。”

  汪兴的声音变得沙哑,他死死盯着刚才那段C代码,终于看明白了里面那可怕的数学逻辑。这不是在查数据。

  这是在内存里,直接对整个用户关系网进行数学维度的降维计算。

  汪兴的手指有些发麻,他切回MSN的聊天窗口,手速极快地敲字,甚至连打了好几个错别字都顾不上改。“老楚!这底层逻辑是谁写的?!”

  汪兴连续发了三个抖动窗口。

  “这他妈是纯粹的图论和高阶线性代数!直接把数据库的活儿抽给CPU内存做矢量计算了!”汪兴的心脏在狂跳。

  “你别告诉我这是你想出来的,你背后是不是有个中科院的算法团队?还是说你找了矽谷哪个搞搜索引擎的大牛帮忙?”小县城的网吧里。

  楚戈看着屏幕上汪兴发来的那一连串感叹号和疯狂闪烁的窗口,疲惫的脸上露出了一个极其罄张的笑容。他拿起旁边那盒自己让朋友代买的几十块的糖,抽出一根,叼在嘴里。

  楚戈把烟灰弹在泡面碗里,双手搭在满是油污的键盘上,慢条斯理地敲下了一行字,点击回车发送。“没团队。”

  “就我同宿舍的一个室友,他刚好在家放寒假,刚才打电话顺手给解的。”

  发完这句,楚戈顿了顿,又补了一刀。

  “哦对了,他今年十二岁,这会儿估计正被他妈叫去吃饺子呢。”

  MSN那头,汪兴的头像彻底不动了。

  过了足足五分钟。

  汪兴才发过来一串省略号。

  接着是一句话。

  “老楚,如果明天投资人那边的钱到位了,我给你留百分之五的干股,你那个室友...….能不能拉进咱们团队当技术顾问?什么条件他随便开。”楚戈看着这句话,轻笑了一声。

  “拉倒吧。”

  楚戈敲字。

  “咱们这破草班子,你还敢指望人家那种大神来当技术顾问?这几行代码,就当是我送你们的新年礼物了,下了,睡觉。”楚戈果断地退出了MSN。

  网吧里的空气依然浑浊,旁边包夜的几个社会青年已经趴在键盘上睡着了,发出轻微的鼾声。楚戈站起身,伸了个大大的懒腰,骨头发出几声脆响。

  他走到吧结了账,推开网吧的玻璃门。

  一股凛冽的寒风迎面扑来,瞬间吹散了身上沾染上的烟味和网吧特有的头油味。

  天已经蒙蒙亮了。

  大年初三的早晨,街道上冷冷清清,满地都是昨夜放完的红色鞭炮碎屑,在残雪的映衬下显得格外刺眼。楚戈把那件旧军大衣的领子竖起来,双手插在兜里。

  他走在清冷的街道上,呼出一口白气。

  在这个疯狂生长的时代前夜。

  有人在牌桌上通宵,有人在电脑前熬红了眼。

  而那个真正给他们指了条明路的人,现在在干什么呢?

  楚戈忍不住笑了笑,踩着地上的碎纸屑,朝着招待所的方向走去。

  同一时间。

  泽阳市,阳光家属院。

  陈家客厅里的电视机开着,正在重播着昨晚的春节联欢晚会。

  冯巩那句我想死你们了在屋子里回荡。

  厨房里热气腾腾。

  “小拙!别在客厅晃悠了,去洗手!”

  刘秀英端着两盘刚出锅的饺子从厨房走出来,热气模糊了她的脸。

  “初一饺子初二面,初三的合子往家转,今天吃酸菜猪肉馅的饺子,赶紧过来趁热吃,一会儿坨了就不好吃了!”陈建国拿着几瓣大蒜和一瓶陈醋,在餐桌前坐下。

  “来了来了。”

  陈拙应了一声,走到卫生间,拧开水龙头。

  脑海里刚才那一闪而过的矩阵,向量,高维空间映射,在听到刘秀英喊吃饺子的那一刻,就像是被清水冲走的肥皂沫一样,瞬间消失得干干净净。什么互联网,什么六度空间。

  在这个飘着雪花和醋香味的大年初三早晨,都比不上餐桌上那一盘热气腾腾的酸菜馅饺子来得实在。陈拙擦干手,走到餐桌前坐下。

  “妈,给我倒点醋。”

  陈拙把小瓷碟推过去,语气里带着一个十二岁男孩特有的理所当然。

  刘秀英拿起醋瓶子,给他倒了半碟。

  “吃饺子不吃蒜,香味少一半,自己剥蒜去。”

  陈建国把两瓣大蒜扔到陈拙面前。

首节上一节263/333下一节尾节目录