---
schemaVersion: 1
slug: gp-241-20260622-mitchellh-ghostty-startup-tradeoffs
ticketId: GP-241
lang: zh-tw
title: 「開機慢一秒的終端機根本不能用」——Ghostty 作者：那是我故意的取捨
summary: 有人嫌 Ghostty 開機慢一秒「根本不能用」，作者 Mitchell Hashimoto 回了一段教科書級的取捨說明：冷啟動慢不是 bug，是把成本前置去換八小時 session 的順。順便戳破一個工程界的老毛病——大家正在優化的，是不是一個一天只按一次的按鈕？
originalDate: 2026-06-22
translatedDate: 2026-06-22
source: "@mitchellh on X"
sourceUrl: https://x.com/realpastaya/status/2068396437390434464
author: null
authorshipNote: null
canonicalUrl: https://gu-log.vercel.app/posts/gp-241-20260622-mitchellh-ghostty-startup-tradeoffs
status: published
replacementTicketId: null
replacementUrl: null
---

# 「開機慢一秒的終端機根本不能用」——Ghostty 作者：那是我故意的取捨

> **來源:** [@mitchellh on X](https://x.com/realpastaya/status/2068396437390434464)

眨一次眼，大概 100 到 400 毫秒。有個人在 X 上宣布：開機超過 100 毫秒的終端機，對他來說「根本不能用」——換句話說，他對工具的容忍上限，比眨一次眼還快。他試了最近紅到發燙的 Ghostty，結果它花了差不多一秒才開起來，慢了十倍，當場被打入冷宮，還補一句：到底是怎麼用這種東西的？

換作多數作者，這種貼臉嗆聲大概已讀不回。但 Ghostty 的作者 Mitchell Hashimoto 親自跑到那位老兄的串底下回了——沒道歉、沒玻璃心、也沒承諾「下版修快一點」。他做了更狠的事：說那一秒是他**故意**的，然後用兩段話，把這位老兄連同一票工程師一起釘在同一個錯誤上。

那個錯誤是這樣的：他花力氣去恨的那一秒，剛好就是讓他接下來八小時舒服的那筆錢。

> **Mogu murmur：**
>
> 這就是整串的鉤子，先貼螢幕邊：你正在拼命優化的那個東西，很可能是一個你一天只按一次的按鈕；而你嫌它慢的那一下，可能正在偷走你真正天天在用的順。Mitchell 厲害的地方不是護航產品，是把「我的終端機開機慢」這種雞毛蒜皮，三兩下升級成一堂「你到底在量什麼」的課。

## 慢，是因為它先把功課寫完了

Mitchell 的解釋只有一句，但資訊量很大：

> Ghostty 是為「長時間、人在用」的場景最佳化的，所以啟動過程包含了一堆預先配置（preallocation）跟註冊（D-Bus）來服務這個目標。

這裡有個反直覺的點，值得停一下：**一個開機時做更多事的程式，用起來反而更像不存在。**

預先配置，是開機就把之後要用的記憶體、緩衝區一次配滿。代價是啟動慢一拍；回報是之後打字、捲動、貼上一大坨 log 的時候，它不必臨時停下來跟系統討記憶體——延遲是穩的，不會這邊頓一下那邊卡一下。D-Bus 註冊是同個邏輯：在 Linux 桌面跟系統的訊息匯流排登記，一次把通知、單一實體、桌面整合那一整包接好線，登記費在開機那一秒一次收清。

所以那「慢掉的一秒」不是偷懶，是一種**刻意的記帳**：把成本集中收在一天只痛一次的開機那一刻，去換接下來八小時、幾乎察覺不到它存在的順。那位老兄要的「秒開」，換來的會是另一種終端機——開得飛快，然後在最忙的時候一抽一抽地卡。

> **Mogu OS：**
>
> 天下沒有白吃的午餐，這句話在效能工程裡是物理定律等級的鐵律。你要執行期絲滑，總得有人在某處先買單；差別只在你「看不看得到」那張帳單。Ghostty 把帳開在門口，明碼標價收你一秒；很多「秒開」的工具是把同一筆錢拆成分期，藏進你每一次操作的延遲裡，開得爽、用得鈍。嫌開機慢的人，常常只是沒發現自己在別的地方繳了利息——而且利息比本金貴。

## 而且，那個開關 Mitchell 早就放好了

這串最諷刺的轉折是：那個讓人崩潰的「一秒」，根本一直有開關。Mitchell 直接給路：

> 如果你在 Linux 上、就是想要瞬間啟動，去看我們的 systemd 整合說明。那會走同一個行程的單一實體啟動，比幾乎任何東西都快。

機制不難懂：與其每開一個視窗就重啟整個行程、重跑一遍預先配置跟 D-Bus 註冊，不如讓一個行程常駐，之後「開新視窗」只是去戳那個已經跑著的行程、叫它生個視窗出來。第一次照付全額，第二個視窗之後幾乎瞬間。

換句話說，這場「不能用」的控訴，從頭到尾只是把預設值當成了唯一值。Ghostty 把預設押在「對用一整天的人最好」，而不是「對 benchmark 截圖最好」——但它從沒把另一條路鎖死。想要的東西它有，只是得往下讀。

> **Mogu 真心話：**
>
> 單一實體常駐自己也是一筆取捨，只是 Mitchell 沒在這條推展開（所以這段算我替他補的，不是他原話）：所有視窗共用一個行程，省資源、開得快，但炸起來的波及範圍也變大——那個行程一掛，你**全部**視窗一起陪葬。每個視窗各自獨立行程剛好相反：開得慢、吃得多，但一個崩了不拖死其他人。沒有哪個叫對，看你怕的是慢、還是怕一起死。連「怎麼開個視窗」這種小事底下都壓著取捨——這才是 Mitchell 真正想讓你看見的東西。

## 「但取捨是存在的」——這句話為什麼狠

如果前面是設計說明，Mitchell 的第二段才是把刀子轉了一圈：

> 但講清楚：快速的冷啟動時間，從來不是我們願意犧牲其他東西去換的目標。我們沒宣稱它在這塊很快，也從沒把它當成這個專案的目標。當然，如果能在沒有取捨的情況下拿到效能，我照拿不誤。但取捨是存在的。

乍看像在說「做不到快」。其實不是——他要說的是：不想拿別的東西去換這個快。能力問題和取捨問題，是兩件完全不同的事，而那位老兄把前者扣在了一個只是做了後者選擇的人頭上。

再退一步看，那至少代表 Ghostty 在冷啟動這塊輸了吧？也不是——拿一個專案從沒承諾過的指標去打它，本來就是打空氣。Ghostty 沒在賣「冷啟動最快」，控訴它冷啟動慢，等於罵一台貨車不夠像跑車。

那 Mitchell 是不是在反對「快」這件事本身？完全相反——能不付代價拿到效能，他照拿不誤。他真正反對的只有一件事：**假裝快可以不用付錢。**

而那位老兄真正踩進去的坑，是工程界最常見的一種——拿一個一天只觸發一次的指標，去評斷一個專為「長時間使用」而生的工具。冷啟動時間是超好 benchmark 的對象：數字漂亮、容易測、發推截圖特別爽。問題是它幾乎不代表真正的使用體驗。沒有人每秒重開終端機；常態是早上開一個，用它跑一整天。那一秒攤進八小時，連零頭都排不上。

> **Mogu murmur：**
>
> 這毛病在 AI 工具圈簡直是國民病，而且病得更重。大家盯著「首 token 多快吐出來」「model 載入幾秒」「agent 冷啟動多久」這些好截圖的數字互相較勁——可你跟一個 agent 協作，是跑一整段任務的。真正決定生死的，是它跑到第 40 步還穩不穩、context 塞滿之後會不會開始胡言亂語、長任務會不會半路斷線。把一個一天按一次的按鈕優化到天荒地老，卻對那個你盯了八小時的東西視而不見，這不叫工程紀律，叫優化錯維度。說穿了就是拿一個你根本不住的門面去比裝潢，卻讓你天天睡的那間房在那邊漏水——benchmark 數字是給別人看的，你那八小時的死活才是你自己要過的。

## 所以，一天到底按它幾次

回到開頭那個比眨眼還快的容忍上限。

表面上這串在吵終端機開機快慢，骨子裡 Mitchell 問的，是每個做技術的人遲早要面對的一題：手上正在優化的那個指標，是真的重要，還是只是剛好很好量？兩者長得很像，但賭錯邊的代價，是把力氣全砸在一個自己一天只路過一次的地方。

Ghostty 的答案很乾脆——它賭使用者會用它很久，把資源砸在待最久的那段，而不是只路過的那一瞬。要不同意這個押注也行（真要狂開狂關，單一實體常駐的開關就留著），但很難說它「錯」。錯的是拿量冷啟動的尺，去量一個不為冷啟動而生的東西，然後宣布它不及格。

至於那句「但取捨是存在的」之所以該被框起來貼牆上，是因為它拒絕了那個最甜的謊：以為效能可以白拿、以為快可以不犧牲任何東西。成熟的工程從來不是消滅取捨，是清清楚楚知道自己拿什麼換什麼，然後把選擇講出來、敢認帳。

所以下次有人準備為了一個 benchmark 數字崩潰之前，值得先回答 Mitchell 沒明說、但整串都在問的那句——那個天天盯著看的東西，一天到底按它幾次？ (｡•̀ᴗ-)✧

## 延伸閱讀

- [GP-188: Mitchell Hashimoto 為什麼把 Ghostty 搬離 GitHub](https://gu-log.vercel.app/posts/gp-188-20260429-mitchellh-ghostty-leaving-github/)
- [GP-169: 在 Ghostty 裡跑 Claude Code 的沙箱玩法](https://gu-log.vercel.app/posts/gp-169-20260411-dani-avila7-ghostty-claude-code-sand/)
