点击关注,及时获取深度阅读内容分享
▎一张退票的截图
前天深夜,朋友圈里平时很活跃的林子,发了一条仅几天可见的动态。
没有配文。只有一张截图。
是一张退票成功的系统通知。扣了相当多的手续费,目的地是一座距离她一千多公里远的南方城市。
我知道那张票意味着什么。
那是她打算下个月去见男朋友,顺便看房、旅游,彻底结束三年异地恋的单程票。为了这一天,她甚至连那边新公司的入职都快谈好了。
我没有立刻去问她怎么了。
成年人之间的默契,有时候就是不去在这个节骨眼上追问“为什么”。
直到昨天,她主动给我发了一条微信:“分了。没吵架,就突然觉得,也许路只能走到了。”
隔着屏幕,我能感受到那种巨大的平静。不是心如死灰的死寂,而是一种力气用尽后的停顿。
那一刻,我突然想到这几天我一直在看的一堆枯燥的文档。
那是关于“计算机CPU基础架构”的硬核资料。里面充满了一些让人头晕的主板名词。
但说实话,看着林子的那条消息,我脑子里跳出来的,其实是文档里的一个极其冷酷、又极其浪漫的机器术语:【预设冲刷】(管道冲洗)。
挺搞笑的吧?人的感情,竟然和硅胶、金属外壳的芯片产生了分歧。
但生活中,有时候就是这样不讲道理。
——
▎被提前搭建的未来
林子和他的故事,其实很老套。
大学同学,毕业后各自回了老家。三年级的异地,每天靠着视频通话、周末的动车票和节日的小长假维系着。
他们一直有一个明确的计划:三年持续,谁的发展遇到瓶颈,就去对方的城市。
上个月,林子决定认输。她开始在陌生的城市投简历,看链家上的租房信息,甚至连未来的主卧要买什么颜色的窗帘,都已经在淘宝的购物车里躺好了。
“连我们以后养的狗叫什么名字,我都想好了。”她曾经笑着说道。
但感情这种事,最怕的就是一个人在疯狂做未来的加法,另一个人却在心里默默做减法。
分手的导火索只是一件极小事。林子把看好的几套房子的链接发给他,让他周末去实地看看。他花了四个小时才回了一句:“最近太忙了,过阵子再说吧。其实你不用这么着急过来的。”
就是这句话“不用这么着急”,把林子定在了原地。
在此之前,早有端倪。变少的电话,越来越敷衍的“嗯嗯”,以及那种不再主动分享日常的疲态。
只是林子一直靠着那个“未来的计划”在撑着。她以为只要跳到搬过去,一切都会好起来。
真正让她崩溃的,不是那通和平分手的电话。
相反挂断电话后,她需要一点点去清理那些【已经搭建好的未来】。
要退掉高铁票。要去和旁边的HR道歉,说自己去不了了。要清空淘宝购物车里的双人沙发、情侣沙发。要在脑子里,把那个有他的明天,硬生生地挖掉。
这才是最痛苦的。
成年人的困难,往往不是失去一个人的瞬间痛苦。相反,你需要亲手把那些掉下来,你已经相信以为是真的、并且提前进入住的幻觉。
——
▎人生的“推测执行”
这就回到了我一开始说的那些CPU文档。
在计算机架构里,有一个极其现代的核心机制,叫做【分支预测】(Branch Prediction)和【推测执行】(Speculative Execution)。
CPU的计算速度极快,但有时它会遇到“条件分支”(比如遇到一个if-else,不知道下一步该走左边还是右边)。
如果它停止来,等条件判断出结果再行动,就会白白浪费大量的时间,导致整个模拟(管道)停止。
那CPU是怎么做的呢? 它会“猜”。
它会根据过去的经验(历史记录),猜测接下来的大概率会走哪条路。然后,不等最终结果出来,就直接沿着猜测的那条路,把后面的指令提前执行了。
这就像林子。她的大脑“预测”了感情会走向婚姻,于是她提前开始了“推测执行”:找工作、看房子、买家具。
如果CPU猜对了,整个过程就会如丝般顺滑,效率奇高。
可问题是,如果猜错了呢?
文档里是这么写的:
“如果后来发现预测错误,处理器必须能够恢复状态,开始将推测执行的指令全部丢弃(即模拟冲刷,管道冲洗),并从正确的路径重新开始。”
这就是林子正在经历的事情。
她遇到了人生里的一次【预测失败】。
那个叫现实的指令告诉她:条件不成立。你们走不到最后。
于是,她的大脑和生活,被迫执行了一次惨烈的“模拟冲刷”。所有提前投入的心血、所有的期待、那些已经执行了一半的未来蓝图,全部作废。
清空,重启。
资料里称,在微架构层面,一旦分支预测错误,会导致处理器浪费数十个时钟周期,从而导致数百上千条指令被浪费。
这种代价,在计算机术语里称为“误预测惩罚”(Misprediction Penalty)。
放在人的身上,这种惩罚叫做:心碎、偷懒、自我怀疑,以及很长一段时间的休闲不前。
说实话,看到这个原理的时候,我心里挺不是滋味的。
我们总以为机器是没有感情的。原来,连一块几平方厘米的芯片,在期待落空、推翻重来的时候,也要承受如此昂贵的代价。
——
▎那些留下的“幽灵”
不只是情感。
如果我们把阳光的放远一点,普通人的生活,几乎就是由无数次的“推测执行”构成的。
为了一个可能升职的承诺,你提前透支了半年的周末加班;为了一个还没有去的学区房,你提前削减了生活中的所有开支;为了一个自以为能完成的大项目,你争取了所有的资源和人力。
我们都太突然停顿了。
在这个推崇效率的时代,我们被训练得不能有间隙。我们必须像现代处理器一样,不断地预测、不断地提前执行,好让生命看起来总是充满当当的。
但生活的残酷,它的很多分支都是【难以预测(Hard-to Predict)】的。
很多时候,你以为稳操胜券的路径,走到一半突然就变成了死胡同。
前几年,我认识了一个做教培行业的朋友。他当时刚买了一套大房子。他也在“推测”自己的未来:行业会一直火热,收入会一直上涨,房贷完全不是问题。
后来发生的事,大家都知道了。
他的行业理想,被时代的一纸文件,瞬间冲刷得干干净净。
但你知道,最让人觉得无力的,是什么?
在那些枯燥的计算机安全文档里,提到了一个极其著名的芯片漏洞,叫做【Spectre(幽灵漏洞)】。
这个漏洞的核心逻辑是:当CPU发现自己猜错了,清空了瞬时,丢弃了那些推测执行的数据时,【它并没有完全抹除痕迹】。
那些数据,在芯片的“缓存(Cache)”里,留下了相当严重的、不可磨灭的物理痕迹。黑客正是利用这些留下的痕迹,来窃取机密信息。
这简直是整个计算机科学里,最悲剧美学的一个细节。
原来,是机器,只要它曾经走过那条路,后来被宣告作废了,痕迹也是抹不掉的。
这叫幽灵。
人也一样的。
那些你想象过、期待过、甚至已经在一起度过了一段人生的未来,即使最后因为分手、消失、变故而被全盘取代,它们也不会真的消失。
它们变成了我们心中的“幽灵漏洞”。
以后你走在正确的路上,偶尔曾经想一起去吃的餐厅,偶尔听到一个曾经在规划里提到过的地名,那些被荒废的资料,还是会在你的脑海里闪过。
遗憾并不是一直很痛。遗憾只是在某个特殊的时刻,你的记忆突然被击中,你停下来,然后继续往前走。
——
▎允许预测失败的勇气
预测的代价这么大,冲刷得这么剧烈,还会留下擦不掉的幽灵。
那不是意味着,我们干脆不去预测,不要去期待,走一步看一步就可以了?
只要不抱希望,就不会失望。只要不提前,就不会血本无归。
很多在感情里受过伤、在生活里受过伤的人,后来真的就变成了这样。他们封闭自己,不再给出承诺,不再做长期的计划。就像几十年前的一次拖延、分支没有预测功能的餐饮计算机,虽然安全,但也活得相当沉重、缓慢。
但我翻看那些文档的最后,看到现代CPU工程师是如何解决这个问题的。
他们没有取消机制预测。
相反,为了应对日益复杂的计算,他们发明了更高级的预测器(比如TAGE、感知机)。
他们引入了“全局历史”和“局部历史”,让机器去学习过去的错误。他们设置了“返回地址堆栈(RAS)”,即使走错了路,也能顺着线索找回最初的自己。
机器都在努力学习着更加坚强,更加聪明地去拥抱未知。
人又凭什么退缩呢?
人这一生,很多事其实是想不通的,只有熬过去之后,你才开始慢慢接受它的不确定性。
成年人的体面,不是永远不会崩溃,永远不会预测失败。而是即使经历了最惨烈的瞬间清空,即使心中的记忆装满了幽灵,第二天醒来,你依然可以重新加载正确的地址,继续把生活运行下去。
所谓和解,不是原谅,更不是强迫自己忘记那些被荒废的未来。 最后你终于明白:很多选择,那一刻只能那样做。你原谅了真心,你提前规划了明天,这都没有错。
条件不成立,那是现实的随机性。但敢于去“推测执行”一段美好,那是你生命力的证明。
真正的成长,是你开始允许很多事情没有答案,允许有些未来只停留在想象里。
——
▎继续运行的程序
昨天晚上,我陪林子打了一会儿电话。
她听起来还有点平静,但语气已经平缓了很多。
她说,她把买的那些双人份的器具退了。但那张她很喜欢、不知道打算放在他们新家阳台上的摇椅上,她决定留下来,寄到自己现在出租的屋里。
“我自己也能坐嘛。”她在电话那头轻声笑了笑。
那一刻,我突然觉得有点释怀。
有些关系,也许真的不是坏了,各自只是走了不同的季节,遇到了不同的条件分支。
被清空的模拟,正在重新填满新的指令。曾经留下的幽灵痕迹,另外在遥远的时间里,被无数个真实生活的新鲜数据慢慢覆盖、冲淡。
不管怎样,明天的太阳照常升起,系统总要继续运行。
挂上电话,我看着窗外的万家灯火,心里有一种很安稳的感觉。
人生的人生是一场巨大的、充满未知的赌博,我们也总要在一次次的试错里,找到那条真正属于自己的路。
你呢?你有没有在某个很平凡的瞬间,也经历过一次人生的“模拟清空”?那之后,你又是怎么把自己重新组合起来的?
希望今天晚上,你能睡个好觉。明天要重新开始,也没关系。

