測試環境
本頁所有數據都來自同一部電腦:開發應用程式所用的筆電,採一般內顯配置。macOS 與 Windows 版本仍在開發;完成後會在此加入其數據。
| 電腦 | 作業系統 | 顯示器 | 備註 |
|---|---|---|---|
| 筆電,Intel i5-11300H,23 GB,Iris Xe(Mesa 25.2) | Ubuntu 24.04,GNOME,X11 | 2560×1440 @ 60 Hz | 發布組建,commit 04cf7dc |
測試文件:tools/perf/fixtures/doc100k.md(100 KB,874 行)· 執行 3 次,取中位數 · 指標停在視窗外 · 真實工作階段匯流排。
閒置畫格
主張:沒有動靜時,mote 不會繪製任何內容。在即時檢視中開啟文件,讓編輯器失去焦點(使游標不閃爍),並在 10 秒內不輸入任何內容(啟動後 t = 5–15 s),接著計算編輯器本身的快照次數:也就是 GTK 每次要求編輯器繪製的次數。
| 平台 | 10 s 內畫格數 | CPU,平均 | 方法 |
|---|---|---|---|
| Linux | 0 | 0.0% | 透過 tools/perf/gate.sh 計算編輯器快照 |
啟用游標閃爍時(視窗取得焦點時的預設狀態),每次閃爍會重繪編輯器一次 — 只有游標改變 — 視窗一失去焦點便會停止。這個閃爍是應用程式唯一允許持續執行的計時器;閒置時沒有其他重複來源。
輸入延遲
主張:從按鍵到像素,第 95 百分位數為 9.7 ms。按鍵 → 處理完成:p95 0.29 ms。按鍵 → 像素(包含 vsync):p95 9.7 ms。由 tools/perf/typing.sh 在程序內測量,使用 100 KB 文件及即時檢視。
「處理完成」表示輸入事件已更新文件,並使受影響的版面配置失效;「像素」表示下一張快照結束,而快照須等待畫格時鐘,因此下限受 vsync 約束(60 Hz 時為 16.7 ms)。在 300 次按鍵中,兩組分布分別為 p50 0.01 / p95 0.29 / max 0.48 ms,以及 p50 2.6 / p95 9.7 / max 12.7 ms。測量於 2026-09-02,使用 M3 組建,commit 早於下方的門檻測試;輸入測試尚未放入結果目錄,因此在重新執行前,不應完全採信。未包含顯示器本身的反應時間;我們尚未測量。
冷啟動
主張:啟動至視窗出現需 211 ms,並開啟一份 100 KB 檔案。「冷」是指啟動全新程序並同時開啟檔案;沒有預熱,頁面快取保持原狀。計時從 exec 開始,視窗映射時停止;首次繪製則以同一時鐘計時,並在編輯器首次產生文件快照時停止。
| 平台 | exec → 視窗 | 首次繪製 | 執行檔大小 | 載入後 RSS(PSS) |
|---|---|---|---|---|
| Linux | 211 ms | 231 ms | 3.1 MB | 69 MB |
方法:tools/perf/gate.sh,「冷」= 全新程序,啟動時開啟 100 KB 檔案。PSS 於十五秒後從 /proc 讀取,此時文件已完成排版,應用程式也已閒置。
同一部電腦,同一份文件
Typora、Obsidian 與 MarkText 各自在行內編輯檢視中開啟同一份 100 KB 文件(Typora 的 WYSIWYG、Obsidian 的 Live Preview、MarkText),使用上述電腦及同一支指令碼。記憶體為啟動十二秒後整個程序樹的 PSS;閒置 CPU 為視窗取得焦點但無輸入時,第 5–10 秒程序樹的 CPU 使用量;輸入 CPU 則是在每 30 ms 輸入一個字元、合計約 150 個字元期間的程序樹 CPU 使用量。每款編輯器執行七次後取平均,另捨棄第一次暖機執行。
| 編輯器 | 版本 | PSS | 閒置 CPU | 輸入 CPU | 程序數 |
|---|---|---|---|---|---|
| mote | 發布前版本,commit b17c3bf | 78 MB | 0.0% | 10.9% | 1 |
| Typora | 1.14.9 | 453 MB | 0.1% | 102.6% | 8 |
| Obsidian | 1.12.7 | 361 MB | 0.8% | 152.5% | 7 |
| MarkText | 0.19.1 | 416 MB | 0.6% | 135.8% | 6 |
Typora 的閒置 CPU 和我們一樣低 — 我們如實說明。Chromium 在真正閒置時會節流,所以閒置欄能區分 mote 與 Obsidian、MarkText,卻不能區分 mote 與 Typora。引擎的差異體現在記憶體與輸入成本:一個程序對上六至八個,每次按鍵的 CPU 用量約為十分之一。此處的 78 MB 高於上方的 69 MB,因為這是另一個工作階段中整個程序樹的數字;GTK 與 Mesa 的基礎用量在不同工作階段間會浮動十多 MB。
MarkText 以 --no-sandbox 執行(其沙箱無法在這個核心上啟動);Obsidian 則在全新的 vault 中執行,只啟用三個核心外掛。原始資料:experiments/2026-09-03-apps-idle-startup/raw.csv。
重現測試
測試工具、語料、原始 CSV 與結果 JSON 將隨測試版發布於 GitHub 的公開效能測試儲存庫。tools/perf/gate.sh <binary> :1 3 執行門檻測試;tools/perf/bench-apps.sh 執行比較測試。若你的數字與我們相差超過 15 %,請告訴我們;我們會公開這項差異。
最近一次執行:門檻測試於 2026-09-03,對應 commit 04cf7dc;比較測試對應 b17c3bf;輸入延遲於 2026-09-02 在 M3 組建上測量。每次發布都會重新執行。