都是因为这事。
王大勇蹲在阳边,也转过头,举着手里一直没撕开的调料包问。
「楚老板,这水都快烧乾了,面到底下不下?刚才去你们宿舍看,陆嘉连话都不跟我说,我都没敢问他晚上要吃几包。」楚戈伸手用力搓了一把脸,声音有气无力。
「大勇,先把电拔了。别烧了。」楚戈苦笑了一声,「这面今天晚上能不能吃得上,还是个问题。」王大勇愣了一下,赶紧伸手把墙上的插头拔了下来。
电热杯里翻滚的水面失去了热源,渐渐恢复了平静,只剩下一丝白色的热气往上冒。
「又出什麽事了?」
陈拙转过身,面向楚戈,他顺手把桌上的朗道合上,往旁边推了推,腾出了一点交流的空间。楚戈指了指对门216的方向,眉头拧成了一个死结。
「死循环了,彻底卡死了。」
楚戈叹了口气。
「市里那个搞医药批发的老板,这阵子不是赚翻了吗?各大医院、乡镇卫生院还有连锁药房,天天找他要84消毒液,口罩和板蓝根,他以前那个单机版的Access进销存库直接崩了,找咱们用SQL Server重新写一套。」
楚戈越说越烦躁,从口袋里摸出一根烟,想点,看了看陈拙,又烦躁地塞了回去。
「本来就是个简单的进出库,写个前端连个库就行,但是老板非要加一个变态的调配逻辑。」楚戈比划着名手势。
「货源紧缺,市级医院的单子要绝对优先,然後是连锁大药房,最後才是下面县城的小诊所,而且不能把小诊所全断了,得留个百分之十的底仓给他们按比例分。」
陈拙安静地听完,没有插话。
「陆嘉写统筹算法的时候,用的是嵌套循环。」
楚戈揉了揉太阳穴,有点头疼。
「如果来的是医院订单,走路线A,查库存,扣减,如果是药房,走路线B,查库存,按比例扣减,逻辑上没毛病。」楚戈顿了顿,脸色变得很难看。
「但是今天晚上交工,我跟陆嘉倒了三万条模拟数据进去做压力测试,三万个订单带着不同的优先级标签同时挤进来,那些IF和Else的条件判断套了五六层。伺服器要在後把这几万个订单反覆遍历,比对,排序。」
「然後呢?」陈拙问。
「然後CPU占用率直接飙到百分之百,内存吃满,机箱风扇转得快冒烟了,系统死机。」楚戈靠在椅背上。
「这算法的时间复杂度太高了,我和陆嘉在对面调了一下午的参数,怎麽改最後都是死循环,老板说今晚必须看到跑通,要是扛不住这三万条并发,万把块钱的尾款就没了。」
楚戈说完,眼巴巴地看着陈拙。
「拙哥,你脑子好使,数学底子厚,你帮着捋捋,这底层逻辑到底是哪出毛病了?」
陈拙坐在椅子上,目光落在桌面的那本《朗道》上,静静地思考了几秒钟。
他听懂了。
楚戈和陆嘉遇到的问题,在於他们试图用最直接,最笨重的穷举法去走迷宫。
在数据量小的时候,挨个判断身份,排队,分配,计算机算得过来。
但数据量一旦呈指数级爆发,嵌套循环就会变成一个计算黑洞。
这和他之前看普林斯顿团队那篇论文时遇到的死结,在纯逻辑上是同构的。
德里安的团队试图用连续的时空微积分去跨越奇点,结果遇到了发散,楚戈他们试图用线性的条件判断去处理庞大的交叉订单,结果遇到了内存溢出。陈拙点了点头。
「思路从一开始就偏了。」
陈拙语气平稳。
-->>
本章未完,点击下一页继续阅读