WindowServer
簡短回答
WindowServer是macOS的系統程序,負責管理視窗,把各個App繪製的內容合成為顯示器上的最終畫面,並把按一下、按鍵等輸入事件傳送給對應的App。
你在螢幕上看到的一切都會經過WindowServer。App各自繪製自己的視窗,WindowServer再把它們與選單列、Dock、陰影、透明效果和動畫合在一起,然後把結果傳送到每台顯示器。
因為它是在替其他App工作,所以它的CPU和GPU用量會隨螢幕上的內容起伏。移動視窗、觀看影片或使用大型外接顯示器時,WindowServer排在CPU列表前面是正常的。
WindowServer為什麼使用這麼多CPU
要繪製的內容越多,WindowServer就越忙。常見原因包括:開啟很多視窗、接了多台或高解析度顯示器、使用縮放的顯示模式、透明等視覺效果,以及不斷重繪的App(有動畫的網頁、影片、遊戲)。
只要有一個App不停更新自己的視窗,就能讓WindowServer很忙,即使那個App本身的CPU用量並不高。如果螢幕看起來沒什麼變化,WindowServer卻一直居高不下,原因往往是某個App在背景重繪內容。
如何讓它降下來
關閉不需要的視窗和瀏覽器標籤頁,並結束在背景播放動畫或影片的App。然後看看WindowServer是否回落。
如果你使用外接顯示器,可以試著中斷其中一台,看看它占了多少負載。在「系統設定」的「輔助使用」→「顯示器」中,開啟「減少透明度」或「減少動態效果」也能減少繪製工作。
應該強制結束WindowServer嗎?
不應該。WindowServer支撐著你整個圖形介面的工作階段。它一停止,螢幕上的所有App都會跟著關閉,你會回到登入視窗,未儲存的工作可能因此遺失。請改為減少它要繪製的內容。
如何查看是哪個App讓WindowServer忙碌
WindowServer負責繪製,但通常是另一個App要它畫的。活動監視器不會直接把兩者連在一起,所以要用刪去法找出那個App。
- 打開活動監視器,按一下「CPU」標籤頁,找到WindowServer。你可以在右上角的搜尋欄位中輸入它的名稱。
- 記下它的「% CPU」,然後清除搜尋,選擇「顯示方式」>「視窗化程序」。這樣只會列出能建立視窗的程序。
- 依「% CPU」排序。你沒在用卻一直很忙的App,就是頭號嫌疑犯。
- 結束那個App,或關閉它的視窗,觀察WindowServer一分鐘。如果它降下來了,你就找到原因了。
- 如果看不出特別可疑的,就一次隱藏或結束一個App,從瀏覽器、影片播放程式和有動畫的App開始,直到WindowServer平靜下來。
WindowServer為什麼用了這麼多記憶體
為了把各個視窗合成一個畫面,WindowServer會替每個視窗顯示的內容保留一份影像。視窗越大、越多,顯示器解析度越高,要保留的影像資料就越多,所以它的記憶體會隨你的配置而增加。
如果你沒有打開更多視窗,WindowServer的記憶體卻連續好幾天不斷攀升,就登出再重新登入,或將Mac重新開機。兩種方法都能讓它重新開始。請先儲存你的工作,因為登出會關閉你的App。
WindowServer的正常用量與異常情況
正常:拖移視窗、切換空間、捲動、播放影片或連接顯示器時,WindowServer會升高,螢幕靜止時就會下降。在任何螢幕上內容很多的Mac上,它都是比較忙的系統程序之一。
值得檢查:螢幕上沒有任何東西在動,WindowServer卻一直很忙、指標卡卡的,或動畫變得不順暢。這通常代表某個App不停重新繪製,或顯示器配置需要大量工作。
- 某個瀏覽器標籤頁在背景播放動畫或影片。
- 接了好幾台外接顯示器,或使用了不是顯示器預設值的縮放解析度。
- 在好幾個空間中打開了許多視窗。
- 開啟了透明度和動態效果。
- 某個App每秒更新視窗很多次,例如圖表、遊戲或螢幕錄影工具。
如何查看WindowServer的GPU用量
WindowServer的繪製工作大多在圖形處理器上進行,所以它的CPU數字只是一部分。在活動監視器的「CPU」標籤頁中,選擇「顯示方式」>「欄位」並開啟「% GPU」,就能看到每個程序(包括WindowServer)用了多少GPU時間。
選擇「視窗」>「GPU歷史記錄」,可以看到近期GPU活動的圖表。如果螢幕靜止時圖表仍然很忙,代表還有東西在繪製,用上面的刪去步驟就能找到它。
大家常問的問題
Mac上的WindowServer是什麼?
它是macOS的程序,負責管理視窗,把App繪製的一切合成為顯示器上的畫面,並把按一下和按鍵動作傳送給App。它是macOS的一部分,不是你安裝的東西。
為什麼接上外接顯示器後,WindowServer的CPU用量會變高?
每台顯示器都會增加WindowServer需要合成的像素。高解析度和縮放模式會帶來更多工作,所以每多接一台螢幕,負載就會上升。
可以結束WindowServer嗎?
不建議。結束它會終止你的圖形介面工作階段並將你登出,你的App也會因此關閉。
WindowServer是病毒嗎?
不是。WindowServer是macOS的一部分。在活動監視器中,它以系統使用者_windowserver執行,而不是你自己的帳號。
WindowServer為什麼用了這麼多記憶體?
它會替每個視窗保留一份影像,才能把它們合成你看到的畫面。視窗越多、越大,顯示器解析度越高,用量就越多。
關閉視窗能降低WindowServer的CPU用量嗎?
通常可以。視窗越少、螢幕上的動態越少,它要繪製的就越少。關閉有動畫或正在播放影片的視窗效果最明顯。
相關詞條
逐步教學:哪個App在使用我的CPU或記憶體。
想找比活動監視器更好的工具?請參閱Mac上最好用的活動監視器替代方案,或瀏覽詞彙表中的所有詞條。