周曼侧头,看着萧伯年。
她刚才被沈亢说有些气闷、挺闹心,还有点委屈,但是现在心里暖暖的。
她堂堂一个商界女强人,见识过的人不计其数,各种各样的话术也都是听过,一个人说的话是真心话,还是场面话,她听出来。
萧伯年说的,显然就是真心话。
因为他没有一味地去吹捧自己,而是坦诚了自己这道炒青菜的一些“特点”,而这些特点,在他那里,都是优点。
这很合理。
毕竟,食物这种东西,本就是一件非常个性化的事。
就像有些人爱死了川菜,觉那股麻辣鲜香是人间至味,一顿不吃就浑身难受;可换一个人来,就觉太刺激、太重口,吃两口就冒汗,完全不理解这有什么好吃的。
再比如汉堡,喜欢的人说它方便、扎实、痛快,面包夹着肉饼芝士,一口下去什么都有了;不喜欢的人却说,这不就是两片面包夹块肉吗,有什么可吃的,还不如一碗热汤面舒坦。
阿三菜也一样,喜欢的人觉香料层次丰富,一口下去千回百转,每一口都有惊喜,非常美味;不喜欢的人却觉味道太怪、太冲,闻着都头晕,觉吃这种糊糊跟吃屎也没有太大的区别。
所以,同一道菜,在不同人的嘴里,根本就是两种东西。
沈亢觉这盘青菜咸了、老了、半生不熟,那是沈亢的口味,不懂欣赏。
萧伯年说它有起承转合、有回甘,也并不是是刻意美化,而是他真就这么觉。
周曼越想越觉是这么回事。
萧伯年这个人,口味本来就和她合来。她做的菜,他吃下,也愿意吃。上次她下厨,萧伯年也吃了很多,那次可没有谁逼他。
今天这盘青菜,他夹了三根,说“不错”,那神态安安静静,既不夸张,也不勉强,就是很自然地吃下去了。
这大概就是,她的“特点”,恰好落进了他喜欢的范围里。
这么一想,周曼心里更舒坦了。
她甚至有些意,觉自己这道青菜,也不是谁都能吃的。
你沈亢吃不下,只能说明你的口味还不到那个层次。萧教授能品出回甘,那是萧教授的本事。
周曼终于没忍住,对沈亢说:“听见没?不是菜的问题,是你不会吃。”
说完,又觉这话太像小女生赌气,便端起果汁,遮了遮脸。
而餐桌这边
沈亢向萧伯年看过去。
萧伯年若无其事,但就是不敢看他。
沈亢又向旁边的何秋竹看过去,心想,周总你说我不会吃是吧?那我给你找个会吃的。
“别光吃肉啊,吃点青菜,荤素搭配一下。”沈亢把那盘青菜往何秋竹那边推了推。
何秋竹头都不抬。
“我不吃青菜。”
“……”
沈亢侧头看着这小子傻乎乎闷头干饭的样子,脑子里浮现出了在学校、两人一起吃饭的时候,何秋竹总是盯着各种蔬菜吃的画面。
往往都是自己用各种办法,往她的盘子里添各种肉。
自己还感叹过好几次,说你小子上辈子是不是兔子?不然怎么这么爱吃蔬菜呢。
结果现在,你小子跟我说,你不吃青菜?
好好好。
你们精,我也不傻。
既然病人都康复了,沈亢也不多嘴了,开始扮高冷,尽量多吃菜、少说话。
还好他在学校里的时候,一直都是高冷男神,习惯了,所以现在扮演起来还是挺顺手的,挺像那么回事。
至于周曼,也确实康复了,不再搞出一副“模范妈妈”的样子来了,又恢复了往日的常态,心下则是暗暗埋怨那本书的作者,写都是什么乱七八糟的?一点都没用!
尽信书,不如无书唉……
四个人就这么,一边吃,一边闲聊上两句。
期间,周曼还提到了沈亢扛回来的那个蛇皮袋,问那是啥?
沈亢就说,那是一些员工从老家带来的各种土特产,你送一些、我送一些,都是在拍他这个老板的马屁。到后边归拢了一下,有点多,随便拿了个蛇皮袋装着,就扛回来了,毕竟东西太多,他一个人也吃不完。
说到这里,沈亢还说了一句:“都是土东西,周总你身份尊贵,就别吃了,怕你吃不惯。”
周曼就抬眼,“你怎么知道我吃不惯?”
沈亢就说:“这不明摆着的吗?你老人家平时都是吃法餐、喝罗曼尼康帝的,这东西,你哪吃惯?我都不好意思往你面前放,还是我这种平头老百姓自己吃吧。”
周曼看他这幅小气鬼的样子,就愈发想要吃。颇有一种,看到个小娃娃拿着根棒棒糖在那里津津有味地吃着,然后上去抢过来咬掉一半,然后看着娃娃先懵、再哇哇大哭,自己就特别快乐的那种恶趣味。
生孩子如果不是用来玩的,那将毫无意义——虽然不太贴切,但大概就是这么一种意思。
“你少来这套。正好,明天也不用买菜了,让章阿姨做了,我们都尝尝。”
“不是……”
沈亢还想说什么。
周曼直接大手一挥,“就这么定了。”随后乐呵呵地吃饭,心想,让你小子刚才那么损我。
高冷男神沈亢也绷不住了,叹了口气,也没辙,只好继续吃饭。
周曼看这小子挺郁闷的样子,心情就更舒畅了,一顿饭吃完,也不等明天了,立马催着沈亢带她去“藏匿”蛇皮袋的地点——沈亢的卧室——拿了几包牛肉干出来。
随后,就拉着何秋竹陪着她在客厅里看电视,当然,最主要的,是把牛肉干拆开了,当着沈亢的面吃。
只是刚吃两口,周曼就问了一句:“你员工是川西的?”
沈亢正跟萧伯年在开间书房这边喝茶呢,跟客厅是连通的,也就不动声色地回了一句:“嗯。”
周曼头也没回,就只是说道:“我说呢,味道还挺对的,挺正宗。”
味道不对就有鬼了。
沈亢心头腹诽,也不管那边了,把杯子里的茶喝完后,就迫不及待地邀请萧伯年来一场pk——《天龙八部》里的那种。
请收「藏「」「」小」说」唯」一「网」址」:「「」」」」「」」」」」「」」,「站」「长」只「有这一个网「站,其它网「站随「时断「更。」
这几个月,他实在是被萧伯年的脚本折磨郁闷,总是打不赢。唯一赢的那次,还是萧伯年忘了开脚本了。
现在到了线下,总算是能监督萧伯年不开脚本,光明正大地来一场男人之间的战斗了。
当然,以防万一自己还有可能输的情况,沈亢直接要求去萧伯年的房间,两个人关起门来打。
萧伯年就笑,答应了。
……
这是沈亢第一次进入萧伯年的卧室。
一进门,先闻到一股极淡的茶香,混着纸张和一点木质家具的气味。
床铺平整,深灰色被面,两个枕头并排靠规矩,床头只放了一副备用眼镜和一本翻开的《统计自然语言处理》,上面压着一支铅笔。
靠窗的位置摆着一张长桌,放着一个台式机,线都顺到桌下,没有一根搭在明面上。显示器边上搁着个黑色机械键盘,键位间隙里不见灰。
再过去是一面书架,从地板顶到天花板,书脊朝外,高低排列严丝合缝。
沈亢粗粗扫一眼,大半是计算机、数学、语言
学方向,还有几层是历史、哲学和一些旧发黄的文学刊物。
墙面上几乎没挂东西,只书架旁钉了一块白板,上面贴着几张便签,写着几个公式和两行英文,角落里还粘着一个箭头,指向一句话:“先跑起来,再谈最优。”
桌上唯一显有点“乱”的,是一只透明的玻璃杯,里面剩着半杯凉透的白水。杯壁干净,连个指纹都没有。
沈亢往里走两步,发现床边还搁着一双深蓝色的室内拖鞋,摆笔直,鞋头朝外,像随时准备穿上。
另一边墙角,立着一个黑色网球包,拉链拉到头,手柄朝上。
整个房间安静、克制、理性,像一间被临时借用的学者书房。没有多余的装饰,没有任何能看出情绪波动的东西。
“坐吧。”
萧伯年从外面又拉了一张椅子进来,放到了长桌、那个台式机旁放下。
沈亢则是在打量一圈后,重新把目光放回到了那个台式机上。
“萧教授,你这是把家里的电脑也搬过来了?”
他是去过萧伯年的那个属于他自己的“家”的,也进过萧伯年的书房,里面那个电脑,就跟眼前这个一模一样……哦,不对。
“好像不是那台?”沈亢自己先驳斥了自己之前的结论,“换了一台?”
“嗯。”
萧伯年没闲着,给沈亢搬过来椅子后,又去倒了两杯水来,放到了长桌上,“又配了一套。”
沈亢点点头,觉这很符合萧伯年的个性——谨慎。估摸着,他还是随时做好了那边出事、回去应付的准备的。那样的话,那边没了电脑就是一个惹人怀疑的破绽了,所以,就另外又配了一台电脑。
随后,沈亢不动声色地说道:“那我用你这台电脑吧。”
就算萧伯年有脚本,那也是在这台电脑上,而自己的电脑是没有脚本的。自己用萧伯年的电脑,让萧伯年用自己的电脑,那就可以不用特意说就能杜绝萧伯年开挂了,完美。
萧伯年也没意见,答应了。
两人就这么坐了下来,开机,登陆了各自的账号,然后去校场开始pk。
二十分钟后
“不打了。”
沈亢郁闷地把鼠标一推。
连输七把,打个屁。
萧教授好像还真没开挂,但自己就是一直输。
他就纳了闷了,《天龙八部》里的pk也没什么技术含量啊,自己跟萧教授的装备石头也都差不多,怎么
就一直打不过萧伯年呢?
萧伯年坐在一旁,拿着一杯水喝着,看着他,暗想自己是不是太认真了?要不然,再跟他来一把,故意放水,输给他两把?……
萧伯年正想着,沈亢已经放下了郁闷,眼睛炯炯有神地对着萧伯年看了过去,开口了:“萧教授,我为什么打不过你?可以讲讲吗?”
萧伯年一怔,旋即暗自感叹:不沉浸在失败中,在基于人类基因的固有性失败挫折后,立刻挣脱基因的束缚,第一时间就去探寻原因,随后改正,提升,最终,战胜对手——这就是沈亢这孩子啊。
随后,也完全坦诚,说出了自己一直赢的原因,给沈亢解惑。
“你输,不是因为思路、手速这些原因,而是输给了服务器。”
“输给了服务器?”
沈亢纳闷,听不太懂。
萧伯年解释了起来:“你一直在用‘高性能’模式操作。键盘敲飞快,指令一个接一个,全在抢跑。但《天龙八部》的pk不看你按多快,它看的是指令队列。”
“……萧教授,咱们能说人话吗?”
萧伯年一笑,把椅子转了个方向,正面看着沈亢,更详细地解释:“你每按一个技能,客户端要先在本地判断你的状态、目标、冷却,然后才把请求发给服务器。服务器再判断一次,返回结果。这中间有延迟。你按太快,指令在缓冲区里堆着,客户端还在处理上一轮的技能动画。你的操作指令和实际生效的时间之间,有一个空窗。”
“这个空窗里,你的角色会提前泄漏一些信息。比如说,你下一个技能如果是突进,客户端的路径预测就会先动一下。你如果是放控制技能,角色会有一个极短的抬手动画。你自己看不到,或者看到了也没注意。”
“但我看到了。”
“……”
沈亢好像听懂了,“所以萧教授,你是看动作来预判?”
萧伯年点头,又摇头:“严格来说,不是预判,是观察你的客户端在做‘预测执行’。”
“它为了快,会提前猜测你要干什么,提前加载一些资源,这些推测在你真正按下技能之前就已经开始了。我只需要盯着那些被提前加载出来的痕迹,就能知道你下一步要按什么。”
沈亢愣了:“这游戏还有这机制?”
“所有复杂的客户端都有。”
萧伯年还举了一些其他的例子:“不一定是游戏,操作系统、浏览器,甚至cpu本身,都是这么工作的。为了
快,提前算。这叫预测执行,英文叫pcutv 。”
沈亢将信将疑,“好家伙,听起来好玄学啊,cpu还知道我下一步要干什么?听着跟算命一样。”
他都想赞美愚者了。
萧伯年笑了笑:“你觉玄,是因为你只看到了游戏。但在计算机体系结构里,这是早就被验证过的事。cpu内部有个东西叫分支预测器,遇到判断、循环、跳转这些指令,它不会等条件算完再决定走哪条路,而是先猜一条执行。猜对了,省时间;猜错了,就把结果丢掉,回退重来。这就是预测执行。”
沈亢点头:“这个我懂,猜对了赢时间,猜错了白干。”
“对。猜,总比不猜好。就好像同声传译,做同传的人,听到前面几个字,就已经在脑子里预测后面的句子结构了,甚至嘴都开始动了。大多数时候,预测是对的,整场翻译能跟上节奏。偶尔预测错了,停下来纠正一下。但总比一句一句等原话讲完才翻译快多。”
萧伯年似乎谈兴起来了,说完这个例子,又说道:“但你知道吗,英特尔当年不是没想过另一条路。”
“什么路?”
“放弃预测执行。”
萧伯年说:“英特尔和惠普一起搞过一个架构,叫安腾。当时他们的想法很激进:既然预测会猜错,猜错了还要付出代价,那不如干脆不让硬件去猜。把指令调度、并行判断这些事,全部交给编译器。编译器提前把指令排好,cpu照着执行就行,不需要预测,也不需要复杂的乱序执行。”
沈亢听入神:“听上去很合理啊。”
萧伯年点头:“理论上很美好。但安腾最后失败了,而且败很惨。”
“为什么?”
“因为编译器做不到那么聪明。大部分程序运行时候的信息,编译器根本预测不到,比如用户输入什么、网络返回什么、内存里哪个地址会被访问。这些只有运行的时候才知道。”
“硬件预测虽然有猜错的风险,但大部分情况下它猜很快、很准。安腾把宝全押在编译器上,结果很多现实场景下,指令并行度根本排不起来,性能上不去,兼容性又差,最后被a和英特尔自己的86架构打没有还手之力。”
沈亢若有所思:“所以,预测执行虽然会猜错,但还是比不预测强。”
萧伯年说:“对。预测执行是拿‘可能猜错的代价’换‘大概率猜对的收益’。从工业界最终的胜出结果来看,这条路走对了。”
“这
样啊……”
沈亢缓缓点头,若有所思,随后,微微皱眉。
预测执行,猜对了就抢到时间,猜测了就回退……
他怎么感觉,自己好像在哪里听到过这种东西?
而且,为什么,自己的心跳都慢慢加快了?
他听见自己的心跳,不吵,但很重,一下一下,像有人在胸腔深处敲门。
像独自站在深夜的荒原上,忽然听见远处传来一声极低的、没有人听过的恐怖兽鸣。