Mac 最佳化工具:一個詞底下的三件事
「最佳化」這個詞底下賣的是三件互不相干的事,那麼多最佳化工具用起來什麼都沒變,原因就在這裡。一件是儲存空間問題,一件是有東西沒經你同意就在跑,一件是某個子系統壞了要修。三者症狀不同、機制不同、工具也不同,在一台健康的 Mac 上把三件事全跑一遍,很有機會讓它變得更慢。所以先分類,用機器上本來就有的軟體,幾分鐘就分得清自己碰到的是哪一件。
共用一個詞的三件事
回收容量其實是儲存問題,只是看起來像效能問題。Mac 慢不是因為它髒,是因為 macOS 為了滿足每一次寫入都得多做工。
移除常駐負載講的是那些你沒打開、卻已經存在的行程:登入項目、背景輔助程式、launchd agent、更新程式、瀏覽器的輔助行程。收益是真的,但有上限,快的是登入和待機耗電,不是尖峰速度。
恢復正確行為指的是修復:重建 Spotlight 索引、清 DNS 快取、重設卡住的預覽快取。它們修的是某個子系統答錯了,不是加速,所以在一台正常的 Mac 上跑它們是純虧。
容量:看著像效能,其實是儲存
APFS 是寫入時複製。改一個檔案不會就地覆寫它的區塊,而是配置新的區塊再把中繼資料指過去,所以編輯一個大檔案,即使檔案沒有變大也需要空閒區塊。快照存在的期間,舊區塊會一直被引用著。macOS 另外還要留位置給交換空間、暫存檔,以及一份完整的系統更新暫存副本,這就是為什麼一個磁碟區的空閒空間明明比下載檔還大,更新卻可能裝不下去。
空間一緊,配置就不再是瞬間完成的,因為系統會先回收:逐出快取、變薄符合條件的快照、清掉最佳化過的雲端內容。這些都是實實在在的 I/O,而且要在寫入完成之前先做完。快閃記憶體在底下又加了一層,它抹除的單位遠大於寫入的單位,空閒區塊一少,控制器得先把有效資料整併起來才抹得掉。這一層在 macOS 裡看不到,把它當成「別長期貼著容量上限過日子」的理由就好。
到處都在說要留 10%、15% 或 20% 的空間。這幾個數字沒有一個是 Apple 的規格,Apple 也沒有公布自己那句「開機磁碟快滿了」是按什麼條件跳出來的。比百分比誠實的講法是一份配額:留得下你日常會做的最大一件事,對多數人來說就是一次 macOS 更新的暫存。
df -h /
diskutil info / | grep -i "Container"
把數字記下來,改一件事,再讀一次。判準是那件原本失敗的工作現在成不成,不是那個比例。在 Mole 裡做同一件事的是 Analyze,它把磁碟區畫成方塊圖,吃掉空間的東西是一塊有大小的矩形,不是一個猜測,接著用 Clean 處理它叫得出名字的快取候選。手動路線見找出大檔案。
常駐負載:你沒打開它,它卻在跑
這裡有四類東西常被混成一類:設定成登入時開啟的 App、透過 Service Management 註冊的背景項目、自帶 plist 的 launchd agent 與 daemon,以及 App 自己生出來的輔助行程,比如瀏覽器為每個網站開的算繪行程。
為什麼「我明明關掉了它又回來」是正常的
launchd 不會讓每個背景工作一直跑著。多數工作它只登記一個條件然後等:socket 連線進來、被監看的路徑有變動、收到一個 XPC 請求、或者時間到了。條件觸發時 launchd 才啟動它,工作閒下來就允許它結束。所以正在跑的那一組整天都在變,強制結束其中一個行程,只代表它下次被觸發時再起來一次。
所以殺行程不是最佳化。去系統設定 › 一般 › 登入項目與延伸功能把那一項關掉,或者在所屬 App 的設定裡關掉,再測一下它原本提供的功能還在不在。
launchctl print-disabled 到底顯示了什麼
launchctl print-disabled gui/$(id -u)
disabled services = {
"com.raycast.macos.RaycastLauncher" => enabled
"com.apple.Siri.agent" => disabled
"ddddxxx.LyricsXHelper" => enabled
}
標題雖然那樣寫,這並不是一份被停用的服務清單。它是單一 launchd 作用域的持久覆寫資料庫,哪個標籤被明確設過啟用或停用、設的是哪一個,它都記著。多數條目寫的是 enabled,而沒出現的標籤只是沒有記錄過覆寫,跟「沒有安裝」是兩回事。
所以它回答的是「我或某個 App 明確關掉了什麼」,不是「現在有什麼在跑」。launchctl print gui/$(id -u) 才是目前使用者作用域的唯讀檢視,而裡面的服務標籤不一定對得上檔名或 App 名稱,所以永遠不要從行程名反推一個 plist 再刪掉它。完整流程見關閉開機啟動項目。
對收益要誠實。關掉四個閒著的輔助程式,換來的是登入快一點、待機耗電低一點,不是更快的編譯,而備份代理或同步用戶端通常值得它吃掉的那點資源。
修復:把行為修對,不是加速
下面每一項各修一個具體的錯誤答案:
- 重建 Spotlight 索引修的是「搜尋找不到本來該找到的檔案」。先用
mdutil -s /看狀態,整份重建要耗掉數小時的 CPU、發熱和電力,換回來的只有正確的搜尋結果。 - 清 DNS 快取修的是壞掉的 DNS 伺服器或一次 VPN 切換之後留下的過期解析結果:
sudo dscacheutil -flushcache; sudo killall -HUP mDNSResponder。它不會重建路由表,清路由影響範圍大得多,可能把正在用的通道或系統代理直接弄斷。 - 重設卡住的預覽快取修的是預覽畫面顯示錯誤,代價是接下來幾次預覽在重新填快取時會比較慢。
沒有一項能讓健康的 Mac 變快。對著一個叫得出名字的症狀跑其中一項就好,把整組排進定期任務的,賣的是儀式。
Mole 的 Optimize 把這些收成一輪能逐項審核的維護,略過了哪一項、為什麼略過都會報出來,包括 VPN 或系統代理啟用時它拒絕執行的網路操作。一個附理由的略過,勝過一個藏起了決定的勾。
最佳化不可能做到的事
沒有軟體加得出記憶體,Apple 晶片用的是出廠就焊死的統一記憶體。沒有軟體解得開溫度上限,晶片一熱就自己降頻,而 kernel_task 佔用飆高正是 macOS 刻意在逼它降。也沒有軟體修得好快閃記憶體的耗損,或者讓 CPU 每秒跑出比出廠設計更多的指令。
最佳化工具至今還在靠記憶體這個說法,而它整個是反的。macOS 會拿檔案快取把沒用到的記憶體填滿,程式一需要空間就立刻釋放,所以「已使用記憶體」數字很高,正是系統運作正常。真正能預測 Mac 用起來順不順的數字是記憶體壓力,而動用交換空間也不是故障,記憶體很寬裕時,核心一樣會把長時間沒被碰過的分頁寫出去。記憶體清理工具丟掉的是系統花成本建起來的快取,所以那個數字好看了,接下來幾分鐘變慢了,記憶體壓力是什麼講的就是這件事。
先診斷,再挑工具
把症狀重現出來,趁它正在發生時取數字,事後補拍的快照證明不了任何事。容量看 df -h /,CPU 被誰吃掉看 top -o cpu,記錄下來的溫度狀態看 pmset -g therm,再加上「活動監視器」裡的記憶體壓力圖,那張圖沒有同樣好讀的命令列版本。然後拿看到的東西對這張表:
| 你看到的 | 屬於哪一件 | 該做什麼 |
|---|---|---|
| 剩餘空間很少,存檔和更新都卡 | 容量 | 刪掉真正的資料,不是快取 |
| 登入很慢,冒出沒見過的輔助程式,閒置時 CPU 靜不下來 | 常駐負載 | 逐個所有者審登入項目和背景項目 |
| 搜尋結果錯、預覽壞掉、網域解析是舊的 | 修復 | 只跑對應的那一項,然後停手 |
| 做一般事情時記憶體壓力就黃或紅 | 三件都不是 | 加記憶體,或換輕一點的工作負載 |
| CPU 被某個叫得出名字的行程佔滿 | 三件都不是 | 去處理那個工作負載 |
kernel_task 很高,機器很燙 |
三件都不是 | 散熱或工作負載,永遠不是軟體 |
六列裡有三列的結論是「最佳化工具幫不了你」。Mole 的 Status 分頁是把上面那些數字組裝好的版本:大約九塊面板,涵蓋健康度、CPU、記憶體、GPU、磁碟 I/O、網路、電池、溫度與風扇、開機時長,每塊配一條 60 秒的走勢線,下面是每秒更新一次的行程列表。60 秒不是保存下來的歷史,它也沒有假裝自己是。
這些工具各自服務哪一件事
Mole,還不確定是哪一件的時候
Mole 是這裡唯一三種意思都涵蓋的工具,更有用的是它把三件事分開放,而不是揉成一個按鈕。Clean 管容量,Software 管 App 和開機啟動項目,Optimize 管修復,Status 回答到底有沒有問題。
容量這一塊,順序比總數重要。Clean 先掃完,任何東西動之前先把每個候選的精確路徑、所有者和大小攤開,沒把握的一律預設不勾,所以預設動作永遠是比較小的那個。一般刪除走垃圾桶而不是直接解除連結,弄錯了是從垃圾桶拖回來,不是從備份還原,每次檔案操作都寫進 ~/Library/Logs/mole/operations.log。真正的工夫在保護清單:~/.ollama/models、~/.lmstudio/models 和 ~/.cache/huggingface 永遠不會成為候選,因為這些工具管的是共用的內容定址資料塊,只有它們知道哪一塊還被引用著。~/.codex/sessions 和 ~/.claude/projects 底下的工作階段紀錄,放多久都不動。
常駐負載這一塊,Software 分頁把已裝 App、更新狀態和開機啟動項目放在同一個畫面,一個項目要能對上已驗證的 launchd 工作或系統註冊的登入項目,它才動手切換。證不了的一律把你導去系統設定,而不是去寫一個受保護的資料庫,或者自己編一個服務標籤。
實際用起來:先讀 Status 那幾塊面板,再打開對應的分頁。磁碟滿了就 Clean,登入慢就 Software,搜尋或預覽壞了就 Optimize。
Mole 的邊界講白了:不處理惡意軟體,不是備份,遇到帶驅動程式、VPN 元件或系統延伸功能的軟體,也取代不了原廠的解除安裝程式。
一次 $19 買斷,終身免費更新,一組授權兩台 Mac,需要 macOS 14 以上,14 天內可退款。掃描永遠免費,每個付費功能還能免費用兩次,所以上面這些說法你都可以先驗過再付錢,而且全部在本機執行,不回傳遙測。終端機裡的 Mole CLI 以 GPL-3.0 開源免費,brew install mole 裝好,每個具破壞性的指令都吃 --dry-run。
iStat Menus,長期盯著負載和容量
Bjango 的 iStat Menus 三件事一件都不做。它告訴你碰到的是哪一件,而且在這方面它挖得最深:逐核心 CPU 加歷史圖、記憶體用量與壓力、壓縮記憶體與交換空間、磁碟空間與活動加 S.M.A.R.T. 狀態、按 App 拆開的網路流量、各種感測器、電池狀態。7.3 版需要 macOS 11 以上。它以買斷方式賣,分單人版和家庭版,有限時試用,也上架 Setapp,實際條款以官網頁面為準。
歷史圖和按 App 拆開的流量對應的是第二件事,一個整夜安靜佔著網路的 App,只有在這裡看得見。它不清理、不解除安裝、也不修任何東西,這種專注本身就是優點,iStat Menus 之外把這件事講完整了。
Sensei,看硬體健康度,順帶附清理
Cindori 的 Sensei 站在診斷和容量之間。它的頁面寫著 CPU、GPU 和電池統計、溫度與風扇監控、S.M.A.R.T. 硬碟健康度、電池循環次數、磁碟速度測試、SSD Trim 開關和選單列監控,另外附上清理和 App 解除安裝功能。它的商店頁提供年度訂閱和買斷授權,兩種都最多三台 Mac,沒有標示最低的 macOS 版本。重點是硬碟和電池健康度的時候,可以考慮它,適配情況在 Sensei 之外講得更細。
TG Pro,專門回答溫度這一題
Tunabelly Software 的 TG Pro 是這裡讀得最廣的感測器工具:Apple 晶片的逐核心 CPU、GPU、走 S.M.A.R.T. 的儲存裝置、電池健康度,以及各機型不同的主機板感測器,另外還有依溫度觸發的 Auto Boost 規則、警示、CSV 紀錄和診斷報告。它標示支援 macOS 10.13 到 macOS 26,買斷制,它的 FAQ 寫明一組授權個人使用最多三台 Mac,2.x 的更新一直是免費的。
它回答的是三件事都沒涵蓋的一題:Mac 如果是因為太燙才慢,再怎麼清理、再怎麼砍開機啟動項目都改變不了。風扇控制要經過一個特權輔助程式,這個權限要想清楚再給。
OnyX,點名執行的修復操作
Titanium Software 的 OnyX 免費並接受贊助,直接服務第三件事,把維護做成一個個明確的開關而不是一堆建議:驗證系統檔案結構、清理、解除安裝應用程式、刪快取、重建資料庫與索引,以及設定 Finder、Dock、Safari 和 Apple 自家的應用程式。它每個 macOS 大版本各出一個版本,也講得很直白:「每個主要作業系統版本都有對應的 OnyX 版本。請使用正確的版本,不要拿為舊系統準備的版本來用。」只執行你叫得出名字的操作。
活動監視器,多數人該先試的免費基準
Apple 的活動監視器涵蓋 CPU、記憶體、能源、磁碟、網路和快取活動,是這台機器上行程狀況最權威的一份檢視。第一件和第二件事的診斷,它一個人就能收尾:記憶體分頁有壓力圖,CPU 分頁指得出是哪個行程,能源分頁揪得出閒置時還在耗電的輔助程式,磁碟分頁在卡頓當下顯示 I/O。
它差在組裝,不差在能力。它是一個要開起來讀的視窗,不是瞄一眼就懂的東西,也不會把資源庫裡某個隱藏資料夾歸給某個所有者。任何準備買最佳化工具的人,都該先在這裡花十分鐘,它不花錢就能定出你碰到的是哪一件事。
快速對照
| 工具 | 服務哪一件事 | 授權(以官網現行條款為準) |
|---|---|---|
| Mole | 三件都做,而且分開 | 買斷,兩台 Mac |
| iStat Menus | 診斷,帶保存的歷史 | 買斷,單人版或家庭版 |
| Sensei | 硬體健康度加清理 | 訂閱或買斷,3 台 Mac |
| TG Pro | 溫度與感測器深度 | 買斷,3 台 Mac |
| OnyX | 修復,逐項點名 | 免費,接受贊助 |
| 活動監視器 | 診斷,只有即時值 | macOS 內建 |
常見問題
Mac 最佳化工具真的有用嗎?
誠實的那幾款會把一件有邊界的事做好。釋放容量有用,因為儲存空間是真的限制;移除常駐負載省的是登入時間和閒置耗電;修復則在東西壞掉時有用。沒用的是多數行銷底下那句承諾:對一台沒毛病的 Mac 掃一遍就會變快。
Mac 該留多少可用空間?
沒有官方數字,你讀到的每個百分比都是某個人的經驗法則。有用的版本是配額而不是比例:夠一次完整的 macOS 更新暫存,再加上日常負載下交換空間要用的餘裕。改動前後各用 df -h / 量一次,判準是那件原本失敗的工作現在成不成。
一款 App 關掉之後一直自己起來,是惡意軟體嗎?
幾乎都不是。launchd 多數背景工作都是靠觸發條件啟動、閒置後結束的,所以你把行程關掉,那筆登記還在。與其殺行程,不如去「登入項目與延伸功能」或所屬 App 的設定裡把它關掉,先用關閉開機啟動項目認出所有者。
為了效能重建 Spotlight 索引值得嗎?
不值得。重建只修錯誤或缺漏的搜尋結果,別的什麼都不修,代價是數小時的背景索引,跑的過程中 Mac 還更慢。動手之前先看 mdutil -s /,把排除項目和隱私權設定排查掉,而且永遠不要把它排進定期任務。
接下來看哪裡
還是不知道是哪個資源被吃滿,Mac 為什麼變慢按順序走一遍各個瓶頸。讓你不安的是記憶體那張圖,記憶體壓力是什麼講清楚為什麼「已使用記憶體」是看錯了數字。答案是常駐負載,關閉開機啟動項目那套流程不會弄壞同步、備份或 VPN。