Anthropic這篇新的工程文章裡,最值得別人搬回去用的並不是claude.ai兩週內快了約三倍這件事,而是團隊留下的那條絆線:一道以CPU指令數為準的CI關卡,數值只能往下走。這讓往後每一個拉取請求都變成一次效能測試。
重點摘要
- 在第75百分位,claude.ai全新載入到可以打字的時間從3.1秒降為0.55秒;Claude Code的新工作階段則從0.8秒降到0.3秒。
- 兩週內合併超過三千次變更,沒有任何影響客戶的事故,也沒有回滾。
- 兩條熱路徑的指令數分別下降48%與31%,換算成實際耗時是減少78%與44%。正是這項驗證,讓團隊敢用指令數而非計時來卡CI。
為什麼是指令數,而不是碼表
使用者感受到的是延遲,但毫秒級的讀數雜訊太大,不足以拿來判定建置失敗。Anthropic的做法是去找確定性的數字,而不是有代表性的數字,並且在信任每個數字之前,先證明它確實跟著真實延遲走。
驗證的樣本是組裝對話訊息樹的那段常式。用Valgrind分析後發現,其中四分之一的指令是超型態的字典查詢,同一個訊息ID被分三次解析。修掉這段,再加上Claude Code輸出中的狀態列掃描,指令數分別少了48%與31%,同樣路徑的實際耗時則掉了78%與44%。到這時,指令數才成為CI中的永久上限,並由一支夜間工作在每次建置低於上限時把門檻再往下調。
圍繞著這套做法的紀律,和機制本身一樣重要。只要某個基準測試被證實不穩定,或是它會變動但使用者延遲不動,團隊就直接刪掉而不是容忍它,否則模型會去爬一座沒人想爬的山。React的commit次數、V8涵蓋率的呼叫次數、樣式重算與DOM變動,也都通過了同一輪試鏡。
這個三倍是拿什麼當基準
範圍在任何東西上線之前就先定好。Claude透過Datadog的MCP伺服器讀取使用遙測資料,挑出佔整體活動95%的四條動線:啟動應用程式、開始新對話、打開舊對話、送出訊息。這四條後來變成橫跨網頁與桌面的十三項量測,每一項都以使用者操作為起點、以畫面渲染為終點。
十三項目標中有十二項在第三天就達成。手法一點也不華麗:把靜態輸入框直接寫進HTML,讓React初始化期間也能打字;預先編譯V8程式碼快取,讓桌面殼層省下一次重新編譯;在對話之間讓輸入框保持掛載;滑鼠移過去就預取工作階段;側邊欄的重新渲染減少90%。Anthropic估算,這些加總起來每天替使用者省下數萬小時的等待。
只有靠數才看得見的臭蟲
接下來的清單,與其說是效能待辦事項,不如說是對沒有任何儀表板在看的東西所做的稽核。全面清點掛鉤後,找到6900個會在每次按鍵時重新渲染輸入框的掛鉤。一個:root:has()選擇器,對每一次DOM變動收取24毫秒。一段被遺忘的location.reload(),每天觸發五十萬次,卻沒出現在任何載入指標上。相同的快取快照,在主執行緒上每分鐘被複製進IndexedDB兩次。
最離奇的一個,是完成的程式碼區塊會卡住約一秒,追查後發現元兇是破折號。只要出現一個非Latin-1字元,V8就會把整個字串當成UTF-16保存,於是所有語法高亮的正規表示式都掉到較慢的雙位元組路徑上。二十行程式碼,先把區塊複製成單位元組字串,問題就消失了。
版面位移最直接說明了這一點。側邊欄每跳一次,累積版面位移大約是0.008,遠低於0.1這個判定頁面「良好」的門檻——換句話說,標準指標說一切正常。改成直接讀Layout Instability API的原始資料,並依頁面區域替位移貼標籤後才看出,31%的網頁載入在頁面已經可用之後仍有東西在動。
零回滾才是更難的那個數字
兩週合併三千次,講的是產出量。在首次繪製、輸入框這種曝險極高的熱路徑上,既無事故也無回滾,講的則是流程——值得照抄的是後者。
拆開來看,每個環節都很常規:每個拉取請求都要經過自動審查加至少一位人類核准;單元測試寫在它要保護的那項最佳化之前;任何使用者看得到的改動都藏在短命的旗標後面;並從員工、1%使用者到全體逐步放行。不常規的是量——兩週內開出將近兩百個旗標、撤掉其中一半以上,而全部拉取請求約有三分之一帶的是新的遙測或護欄,而不是修正。量測被當成變更的一部分,而不是後續補票的工單。
這件事為何重要
過去,量測是第零步:先推出一個指標,等資料,然後才開始理解問題。當手上有一個你給什麼數字它就往什麼方向最佳化的代理程式,量測就變成攀爬的第一步,而稀缺的資源轉移到「到底什麼值得給一個數字」的判斷上。從83萬行的Rust重寫,到讓代理程式寫程式但把部署權留給人的Perplexity,其他高度倚賴代理程式的工程案例,也看得到同樣的倒轉。
Anthropic很小心,沒有把它說得太滿。該公司自己的紀錄寫道,這個循環很有生產力,但並不自主:目標、取捨與核准都留在人手上,而其中一項長期任務,是持續推著模型在範圍上別像預設那樣保守。對那些把這篇當範本讀的團隊來說,令人不安的推論是:瓶頸會移到審查產能,以及決定該量什麼的品味上——這兩樣都不會因為多加代理程式而變多。
FAQ — 常見問題
這次衝刺是由哪個模型執行的
Anthropic表示,它使用了測試版的Claude Tag,底下跑的是一個內部研究模型,公司形容其能力大致與Opus 5.5相當。所有工作都在單一共用的Slack頻道裡協調,而不是透過專門工具。
這些變更有經過人工審查嗎
有。每個拉取請求都經過自動審查,並且需要至少一位人類核准;使用者看得到的變更則藏在功能旗標後面,依序對員工、1%的使用者、再到全體漸進放行。
沒有內部模型的團隊能照做嗎
機制本身不挑模型:先證明某個確定性指標和延遲相關,再把它放進CI裡逐步收緊即可。不能照搬的是產出量——兩週合併三千次,預設了多數團隊得先自行建立的審查產能與量測基礎。






