Quick Answer
WindowServer combines the windows and visual effects that macOS displays. Its CPU load can change with apps, animations, display settings and macOS itself. High usage is a reason to investigate, not proof that a particular app or a memory leak is responsible.
Do not force-quit WindowServer to lower the number: it can end your graphical session and lose unsaved work. Start in Activity Monitor → CPU, record when the load changes, and test one suspected trigger at a time.
Start With the Symptom
These are diagnostic checks, not measured results or guaranteed fixes.
| When the load rises | First check | How to interpret a change |
|---|---|---|
| After connecting an external display | Disconnect that display briefly, keeping the workload similar | A repeatable drop suggests the display setup contributes; it does not by itself identify a hardware fault |
| After opening a particular app or page | Save work, then quit that app or pause the page | If the change repeats, investigate that workload and its settings |
| During animations, video or screen sharing | Pause one activity and compare | Distinguish work-related load from load that persists after the activity ends |
| Gradually over a long session | Record the trend, then test apps individually | Growth is a clue; a resource graph alone cannot confirm a leak |
| Following an update | Record the macOS and app versions and reproduce the same task | Check version-specific release notes; timing alone does not establish the cause |
What Is WindowServer?
WindowServer is part of macOS’s graphical system. Its executable is normally at /System/Library/PrivateFrameworks/SkyLight.framework/Resources/WindowServer. It combines visual output from apps and the system for display.
There is no single normal CPU percentage for every Mac. Compare the same machine, display configuration and activity over time. CPU percentages are expressed relative to a core, so a process can exceed 100% on a multicore Mac.
WindowServer’s load can reflect other software’s drawing work, but that does not rule out an issue in macOS or the graphics stack itself. A high reading alone cannot distinguish those cases.
How to Investigate WindowServer High CPU
Step 1: Record a baseline
Open Activity Monitor’s CPU tab and find WindowServer. Observe it at rest and while reproducing the symptom. Use a consistent observation period, such as one minute per condition, rather than comparing two isolated readings.
Record your Mac model, macOS version, app version, connected displays, resolution, scaling, refresh rate and the action you performed. These details make a repeat check or support report useful.
Step 2: Change one app or display condition
Save work before quitting an app. Compare the same activity with and without one external display, or with one graphics-heavy page paused. Where practical, restore the original condition to see whether the increase returns.
A repeatable change is stronger evidence than two simultaneous spikes. It still may involve an interaction among the app, display settings and macOS.
Step 3: Check GPU activity and process history
Activity Monitor’s Window → GPU History shows overall GPU activity. It provides context; it does not by itself attribute WindowServer’s work to a particular app.
ProcXray can help you compare process resource histories and inspect the app behind a visible window with the Window Spy Picker. Use those observations to choose the next check, then confirm by changing the workload. A matching CPU or GPU spike is not proof of causation.
Compare process history and identify a window’s app with ProcXray →
Step 4: Try the adjustment that matches the evidence
- Display-related: compare the default display setting with the current scaling or resolution; note the refresh rate. Do not assume one setting is faster on every Mac. Restore settings that do not help.
- App-related: check for updates, close unnecessary windows, or pause demanding visual content. If testing graphics acceleration, record the original setting, restart the app as required and compare overall responsiveness as well as CPU.
- Visual effects: try Reduce transparency or Reduce motion in Accessibility settings. The location can vary by macOS version; use Settings search to find the control.
- Persistent across apps: save work, log out or restart, then reproduce the same task. Check available macOS updates and version-specific support information if it returns.
Step 5: Keep a reproducible record
Write down what changed, the observation period, resource trend and whether responsiveness or heat improved. If no single change helps, provide that record to the app developer or Apple support rather than repeatedly terminating processes.
For wider symptoms, continue with Mac heat and fan-noise checks. For an unfamiliar on-screen window, see finding the process that owns a window.
FAQ
Can I kill or disable WindowServer?
It is required for your graphical session. Force-quitting it can log you out and lose unsaved work. Save work and use normal logout or restart when you need a fresh session.
Why does WindowServer use so much memory?
Its memory use depends on graphical resources and the current workload. Compare memory pressure, responsiveness and repeated behavior on your own Mac instead of treating a fixed number of gigabytes as normal or faulty. See memory pressure versus a memory leak.
Why does it rise with an external monitor?
Display count, resolution, scaling and refresh rate can change the graphics workload. Test one setting at a time. There is no fixed CPU multiplier for adding a 4K display.
Does restarting fix it permanently?
A restart resets session state, but does not establish what caused the issue. If it returns under the same conditions, record the trigger and investigate the app, display configuration or macOS version involved.