# 解決 Mac 上 WindowServer 高 CPU

> 隔離重繪、擷取工具、顯示器、縮放與更新頻率，並對照穩定的 WindowServer 基準。

Published: 2026-06-21 | Updated: 2026-08-22

WindowServer 是 macOS 的顯示合成器。動畫、螢幕共享或調整顯示器時，CPU 使用率升高很正常。真正值得排查的是閒置時持續高負載，並且同時出現卡頓、發熱或續航力下降。

## WindowServer 在做什麼

每個視窗、選單、動畫和像素，最終都由 WindowServer 組合到顯示器上。圖形負載因此可能記在 WindowServer 名下，而不是發起重繪的應用程式名下。它常常只是負載的承擔者。

## 常見的高負載來源

- **大量視窗和桌面空間：** 所有視窗和虛擬桌面都要追蹤與合成
- **高解析度或多台顯示器：** 4K、5K 和多顯示器會增加像素總量
- **縮放解析度：** 部分「看起來像」模式會先渲染更大的表面再縮小。成本取決於 Mac、顯示器、縮放模式和任務，Retina 縮放本身不是故障
- **透明與動態效果：** 選單、Dock 和控制中心的模糊與半透明需要即時運算
- **頻繁重繪的應用程式：** 例如高速輸出的終端機或背景動畫網頁
- **螢幕錄製和遠端顯示：** 螢幕錄製、視訊通話、AirPlay、遠端桌面和虛擬顯示器工具都會增加擷取或合成工作
- **高更新頻率與動態桌布：** 更多影格和持續變化的像素會抬高負載

## 逐項降低負載

- 打開「系統設定 > 輔助使用 > 顯示」，嘗試**降低透明度**。Apple 的[顯示設定說明](https://support.apple.com/guide/mac-help/unac089/mac)介紹了視覺變化。用同一場景對比後再決定是否保留
- 在「輔助使用 > 動態效果」中嘗試**降低動態效果**。Apple 的[動態效果說明](https://support.apple.com/guide/mac-help/mchlc03f57a1/mac)列出了受影響的動畫
- 可以測試預設縮放或較低更新頻率，再重複相同任務，如果文字明顯更難讀，這項交換通常不值得
- 關閉不用的視窗和桌面空間，結束背景頻繁重繪的應用程式
- 一次暫停一項螢幕錄製、遠端桌面、動態桌布或虛擬顯示器工具
- 中斷連接一台顯示器做對比。基礎負載明顯變化後，再分別檢查縮放、更新頻率、線纜和轉接器

登出會重新啟動使用者顯示工作階段，重新開機也可能暫時掩蓋會再次觸發的重繪故障，因此記錄問題狀態比馬上重新開機更有診斷價值。

瞬間百分比很容易誤導，更有參考價值的是在同一個閒置畫面下觀察幾分鐘，重現問題後只移除一個可疑來源。數值和實際症狀都改善時，修改才算有證據支持。

## 合成和縮放為什麼會消耗資源

應用程式先把內容繪製到各自的離屏緩衝區，也叫 backing store。WindowServer 再把它們組合成每台顯示器的最終畫面，並套用變換與視覺效果。

場景變化就會觸發合成，因此持續重繪和畫面擷取會不斷佔用 CPU 或 GPU。部分縮放模式還要渲染較大的中間表面再縮小，但它只是因素之一。像素總量、更新頻率、顯示器數量和重繪頻率應分別測試。

<figure class="blog-diagram">
  <img src="https://mole.fit/img/blog/windowserver-compositor.webp" width="1360" height="454" loading="lazy" alt="多個應用程式的離螢幕緩衝區進入合成器，輸出一幅顯示畫面，縮放解析度先繪製更大的表面，再縮小到面板原生像素">
  <figcaption>WindowServer 為每台顯示器組合應用程式表面。縮放、更新頻率、畫面擷取和反覆重繪都會增加工作量。</figcaption>
</figure>

## 監控工具的邊界

「活動監視器」或 [Mole](https://mole.fit/tw/) 的「狀態」頁可以顯示 WindowServer、CPU 和 GPU 趨勢，但無法自動把合成成本準確歸給某個應用程式。可靠方法是每次停掉一個重繪來源，或只改變一個顯示變數，再比較閒置與工作狀態。

## 一套可重複的排查流程

強制結束 WindowServer 只會中斷顯示工作階段，普通 Retina 縮放也不構成故障。受控對比更容易分清問題來自應用程式重繪、擷取工具、顯示器、縮放還是更新頻率。

---

Canonical HTML page: https://mole.fit/tw/blog/windowserver-high-cpu-mac
Blog index for agents: https://mole.fit/tw/blog/llms.txt
Site index for agents: https://mole.fit/llms.txt
