這週有五、六篇文章在做同一個動作:拒絕把一個系統當成「它就是快/就是小/就是對」的黑盒子收下,而是把蓋子掀開,逐項列出帳。一張餐巾紙把 LLM 推論的成本算到頻寬那一欄、nix why-depends 把 458MB 的映像拆成一條條相依、DuckDB 的「快」被拆成四筆互不相干的省——這週的共識是:別信整體的判決,把明細給我。
第 26 週 —— 拆開來逐項算帳
這週的主軸
六月十六日到二十一日,六天十八篇 deep story,散在四個 domain 上,但有一條主線把其中好幾篇綁得很緊:這週特別多「把一個整體的判斷拆回可歸因的明細」的故事。不是去爭論一個系統快不快、小不小、對不對,而是先不信那個整體形容詞,把它拆成一筆一筆能單獨指認、能單獨算帳的項目——然後你會發現真正的答案常常藏在某一筆你本來沒注意的欄位裡。
最乾淨的一例是那張餐巾紙。用第一原理估 LLM 推論成本,從一個樸素的觀察出發:每生一個 token,就要把整組權重從記憶體搬過運算單元一次——所以單人推論卡的是頻寬,不是算力。把算力除以頻寬得到 arithmetic intensity,推出理論上要 331 個併發才吃得滿一張 B200;再算 200k context 的 KV-cache,純 MHA 要 210GB、GQA 一刀砍掉八倍。整篇沒有一個 benchmark,全靠把「推論很貴」這句話拆成頻寬、併發、快取三欄,貴在哪一欄就自己跳出來了。
同一個動作換到資料庫上是 DuckDB 為何快:它不給你一句「引擎設計得好」,而是把「快」拆成四筆互相獨立的省——in-process 省掉跨 process 序列化(最佳情況 zero-copy)、columnar 省掉讀不到的欄(查 4 欄不必為另外 296 欄付錢)、每個 row group 的 zone map 用 min/max 整批跳過、向量化執行省掉逐列的解譯開銷。換到映像檔上則是 把 NixOS live ISO 從 458MB 砍到 183MB:作者用 nix why-depends 一路追相依,144MiB 的 kernel modules、56MiB 的 Perl 逐刀拆掉,每一刀都先問「這 MiB 是誰拖進來的」——把「太大了」這個感覺,攤成一張誰欠誰的帳。
把鏡頭拉遠,這條線其實更寬。微軟 ISE 的 shift log 摘要系統,把確定性抽取跟推論拆開:單體式讓 LLM 一次 call 吐整份 JSON,得到的是 100% 合法、0% 合契約——模型成了會掉資料的 lossy serializer;解法是對每個欄位單獨問「有沒有 1:1 的對應」,把一次性的整體生成拆回逐欄的可驗證抽取。Pinterest 那篇 CPU 瓶頸追查記是同一個紀律的硬核版:整機 perf 看不出異常,改用 mpstat 逐核量測,才抓到有一顆核(CPU 39)會連續數秒把 system CPU 吃到 100%。而 TimescaleDB 的時序壓縮則把「壓得很兇」拆成 delta、Gorilla 式 XOR、run-length、字典編碼按型別各自上場。餐巾紙、引擎、映像、抽取、量測、壓縮——六篇文章排成同一個方向:能拆成明細的,就別用一句整體的形容詞打發。
沒被合稱的個別亮點
讓 Rust 的 SIMD 不再到處 unsafe接的是上週「把不變條件交給型別系統」那條線。Rust 1.87 起,用單一一個可審的 unsafe macro,蓋掉原本散在上百個 intrinsic 呼叫點的 unsafe——靠的是不可偽造的 zero-sized CPU 能力 token(例如 Avx2(()),只能從 runtime detection 拿到)。同一天的 cuTile Rust把 ownership 紀律延伸到 GPU 的 tile:可變輸出被切成互不重疊的 tile,讓「同一塊 byte 被兩個可變借用同時持有」在型別層級就不可能。型別當守門人這件事,這週沒缺席。
AmEx 的 cell-based 架構是 backend 這週的代表作。把支付故障關進失敗域邊界、用 deterministic routing 決定請求落在哪個 cell,並用「restart 而非 resume」的冪等紀律收尾——當一筆交易必須要嘛沒發生、要嘛只發生一次,resume 反而是風險,restart 才是安全的預設。它和主軸隔一層卻共一個底:把一個大系統拆成邊界清楚、能單獨失敗的小格子。
Iroh 1.0把撥號從 IP 換成公鑰 NodeId——你連的是一個身分,不是一個位置。先打洞、後 relay、QUIC multipath 熱切、local discovery,外加 wire/API 穩定承諾。infra 這週唯一的一篇,卻是把「網路位址」這個三十年的預設重新問了一次。
這週還有一條暗線,把不可信的輸入攤開給人看。藏在 npm prepare 裡的後門是一場社交工程接上供應鏈:假招募者在 LinkedIn 上釣信任,再丟來一個請你 review 的 repo,後門夾在註解掉的測試之間;差點 rickroll 整場 FIFA 世界盃則是一個 NO_ROLES 帳號摸進直播控制台——前端把關擋的只是畫面,不是門。兩篇都在說同一件事:授權的帳不能只在前端記。
GLM-5.2 登頂開放權重智慧指數是 ai 這週最該收進選型筆記的一篇。它給的不是抬轎,而是一套把排名當篩子的自架選型框架——別把 leaderboard 的名次當結論,當成一個要自己複算的輸入。這篇剛好也是主軸的另一種形狀:連「誰最強」這種整體判斷,都該拆回你自己的工作負載上重算一次。
本週動向
把這週(06/16–06/22)和上週(06/09–06/15)放在一起量,domain 的盤子幾乎沒動——這已是連續第二週。五個優先域全部擠在 15.4% 到 24.4% 這條窄帶裡,最大的位移只是 backend 從 20.3% 升到 23.1%(+2.8 pp)、infra 從 19.2% 退到 16.7%(−2.5 pp)、systems 從 22.5% 微升到 24.4%(+1.9 pp),沒有任何一個 domain 接近值得寫進敘事的門檻。本週總量也從上週的 91 則收斂到 78 則。又是一個「形狀沒變、內容在換」的週。
真正的位移在 tag 這層。上週紅極一時的 postgres 這週直接從 6 次掉到 1 次(−5)——查詢計畫與壓縮的熱潮退場;接棒的是 llm(3 → 5,+2)與 systems(1 → 4,+3),而 agents 這個 tag 本週首次成群出現、一上來就 3 次。比例的盤面穩得反常,但榜單整個換了一輪:上週談 Postgres 的桌子,這週坐的是談推論成本與系統量測的人。
每個 domain 一區,上週(淡)/本週(實)各一條 bar,按 |delta_pp| 排序
五個 domain 沒有一個動超過 3 pp,形狀連續第二週幾乎不變;真正的位移在 tag 層——postgres 從 6 掉到 1,llm 從 3 升到 5。
一週的形狀
六天、六篇 roundup、十八篇 deep story。archetype 分布:technical-deep-dive 7 篇穩居首位、explainer 與 narrative 各 4 篇平分次席、comparison 2 篇、investigation 1 篇——這週硬解說(把一個新機制拆給你看)的比重特別高,正好呼應主軸那股「拆開來看」的勁。domain 上則明顯偏科:systems 7 篇最多、backend 6 篇緊隨、ai 4 篇,infra 只有 1 篇,而 web 這週掛零——上週還五域齊備,這週 web 一篇都沒上桌,是這週形狀上最該標記的一筆。
18 篇 deep story × 6 天(06/16–06/21),每天三篇
六天、十八篇 deep story
本週六天十八篇 deep story,technical 7 篇最多,explainer 與 narrative 各 4 篇;domain 偏科——systems 7、backend 6、ai 4、infra 1,web 這週掛零。
下一週可能會展開的線索
HTTP QUERY(RFC 10008)這週剛把「安全、idempotent、又可帶 body」的查詢語意正式寫進標準,但 RFC 落地跟工具鏈跟上是兩回事。下週值得盯的不是 spec 本身,而是第一批把又長又難快取的 GET 查詢、或語意不清的 POST 查詢搬到 QUERY 的實作——通常標準一進 RFC,反向代理與框架的支援筆記會在一兩週內陸續冒出來。
另一條:GLM-5.2 這週登頂開放權重智慧指數,把球丟回給其他 open-weight 陣營。若下週有人跟進、或有人把 GLM-5.2 拉進自己的工作負載複算後貼出「榜單贏、我的場景輸」的實戰帖,那才是這個排名真正的試煉場。而 Iroh 1.0 剛承諾 wire/API 穩定,下週若 bytecodealliance 周邊或 P2P 生態開始出現「從舊版撥號遷到公鑰定址」的遷移筆記,就有得對照著拆了。
這週的落點——「拆開來算帳」聽起來是會計的活,不是工程的活:它不長新功能、不上發表會,只是把一句「它就是快/小/對」的整體判斷,攤回一張誰欠誰、誰省在哪的明細表。但這週一篇接一篇地提醒,這個動作正是工程跟玄學的分界——當你能說出貴在頻寬那一欄、大在 kernel modules 那 144MiB、錯在沒有 1:1 對應的那個欄位,你才真的握住了那個系統。六天、十八篇,從餐巾紙到 mpstat,這週做的事,是把整體的形容詞,換成可以單獨指認的一行行帳。