晚上十一点半。屏幕冷光刺得眼眶发干。桌上那份方案,第三版了。逻辑看着没毛病,数据我也死磕着核对过两遍。可怪就怪在,通篇读下来,心里头沉甸甸的。你说这活儿到底卡哪儿了?像极了家里那台老电脑。风扇呼啦啦狂转,机箱烫得能煎蛋,进度条却死死咬在百分之九十九。死活蹦不上去。光有零件没用,得看它们怎么串。
前阵子腾书架,顺手摸出本旧书,《计算机组织:原理、分析与设计》。纸页早泛黄起毛了,边角卷得跟咸菜似的。里头讲数据通路那章,把最绕的运算逻辑掰开揉碎,讲得挺直白。活儿再大,最后都得拆成一条条明明白白的信号线。寄存器往里塞什么,运算器到底算啥,控制单元发什么号。每一步的走向,早得画成图纸。通路要是设计得跟盘丝洞似的,处理器频率飙得再高,数据也在总线上瞎打转。最后全憋在某个节点。光发热。不干活。
书一合上。我盯着天花板发了会儿呆。这哪是光讲硅片和晶体管的事儿啊。
咱们这代人,活脱脱把自己活成了人生的“控制单元”。闹钟一响,脑子里自动弹出待办清单、进度条、考核指标。我们把注意力当柴火,源源不断往各种任务里添。上手快,干得多,对自己也狠。可一到节骨眼上,那股熟悉的滞重感又顶上来。不是本事不够,也不是懒得动。纯粹是内部通路早就堵死了。可能很多人觉得,多换几个脑细胞、多上点强度不就行了?但我觉得未必。当所有信号全挤在同一条总线上,等你的只能是死机。
书里提过个词,叫“流水线冒险”。前一条指令还没跑利索,后一条就急着伸手去取。数据没备齐,控制信号也对不上槽。系统只能干瞪眼,停几个周期等前面清场。生活里的卡顿,大抵也这么回事。咱们总迷信“加速”能破局,于是拼命往上叠新目标,想让大脑多核并行。可越堆越乱,最后连最简单的决策都下不了。
说实在的,我以前特烦“慢”这字。觉得慢就是掉队,就是没效率。直到有阵子项目接连延期,整个人绷得像根快断的皮筋,连喝咖啡都手抖。后来我索性把排期表撕了。只抠出三件最要紧的事。每天只通一条路,跑完,清空,再迈下一步。怪了,效率反倒蹿回来了。不是机器换了芯,是路通了。这事儿可能得看个人体质。有人天生多线程,但我这种单核的,硬跑多任务纯属自虐。
计算机这行当的底层逻辑,性能从来不是靠堆频率堆出来的。靠的是架构合理、流向清晰,还有敢把多余分支一刀砍了的狠劲。咱们倒好,非把日子过成盲目做加法。以为多揽个需求、多考个证、多扛份责任,就能逼近个最优解。可底层没理顺,所有塞进来的东西,最后全变成内耗。这点我后来才咂摸出味儿来。
书里专门划了一节教性能分析,拿公式和基准测试去量化机器的吞吐率。我翻到那儿,忍不住乐了。咱们太拿这套尺子量自己了。拿KPI量产出,拿存款量安全感,拿别人的时间表量自己的进度。可跑性能分析的前提,是系统得稳。通路里要是塞满冗余跳转和冲突检测,公式再精密,算出来的也不过是个漂亮的故障率。你拿死板的公式去套活生生的人,这事儿本身就挺荒诞的。
有回挤晚高峰地铁。车厢里人贴人,看着一张张疲惫却木然的脸,我脑子里突然闪过密密麻麻的指令集。大伙儿都在拼命执行自己的程序,可谁停下来瞅过一眼自己的数据通路?咱们太会写控制逻辑了。做计划,权衡利弊,规划五年十年。却很少去画那条真正的信号线:我今天到底在乎啥?精力该往哪儿倒?哪些分支该直接剪断?
这本书的中英文版是一起出来的,作者特意提了句双语对照是为了方便对照着看。我琢磨着,大概是因为有些理儿,单盯一个角度容易跑偏。生活也这样。死盯结果,焦虑就找上门;光追速度,失控就是早晚的事。得往后撤半步,看看那条看不见的通路里,到底在跑什么,又到底卡在哪。
现在再碰上卡壳的关头,我不再急着给自己换更快的处理器。我先问自己:是不是通路塞得太满?是不是控制信号催得太急?
答案通常特简单。关掉几个后台程序,等一条指令跑完,再迈下一步。
机器得散热,人也一样。那些看着像浪费时间的停顿,压根不是故障。只是系统在悄悄清缓存,给下一趟顺畅流动腾地方。至于明天蹦出什么指令,走哪条道,走一步,看一步,慢慢来,总能跑通。