WindowServer using high CPU on a Mac: what it is and how to calm it down
WindowServer draws everything on your screen. On our M1 it ranged from 23% to 65% CPU while we worked, and it topped energy impact. What drives it up.
What is WindowServer on a Mac?
WindowServer puts every window, menu and animation on your displays. It runs as its own user, _windowserver, from /System/Library/PrivateFrameworks/SkyLight.framework/Resources/WindowServer. Every app that draws anything asks it to, so its load is the sum of everything on screen.
| Moment on our Mac | WindowServer CPU | Energy impact |
|---|---|---|
| Idle with a few apps open | 23% | about 23 |
| Normal work in an editor and browser | 32% | 32 |
| Moving windows while recording the screen | 65% | 65 |
| Memory, in all cases | about 385 MB |
It was the top process by energy impact in every sample, above the browser and editor.
Why is WindowServer using so much CPU?
- Many windows, especially across several desktops. Each one is kept ready to show.
- External displays, above all at a scaled resolution, which means drawing at a larger size and shrinking.
- Transparency and motion: blurred menu bars, sidebars and animations cost drawing work.
- Screen recording or sharing: every frame is copied as well as drawn. Our 65% sample was during a recording.
- An app redrawing nonstop: a busy web page, a spinning animation, a chart updating many times a second.
How do I reduce WindowServer CPU?
- Close windows you are not using, and merge browser windows into tabs.
- Turn on Reduce transparency in System Settings, Accessibility, Display.
- For an external display, try its default resolution instead of a scaled one.
- Quit apps one at a time and watch WindowServer's number: the one that drops it is the app causing the redraws.
Can I quit or kill WindowServer?
Do not. Force quitting it ends your login session: every app closes and you are back at the login window. If it is stuck very high, a log out and back in does the same thing more gently.
See it live
Free Mac's System tab ranks every process by processor use and energy impact, once a second, and marks the ones macOS will not let you quit as protected. For other processes that drain a battery, see what energy impact means and kernel_task.
Related: mds_stores high CPU and mdworker_shared.
Common questions
What is WindowServer on a Mac?
The macOS process that draws every window, menu and animation on your displays. It runs as the _windowserver user.
Why is WindowServer using so much CPU?
Too many windows, external displays at scaled resolutions, transparency effects, screen recording, or an app redrawing nonstop.
Can I force quit WindowServer?
Not safely. Quitting it logs you out and closes every app. Log out and back in instead if it is stuck.