Back to Blog

WindowServer High CPU on Mac: What It Is and How to Fix It

WindowServer at 100%+ CPU? It is the macOS process that draws every pixel on your screen. Learn why it spikes, when to worry, and how to find the app actually causing the load.

· Last updated:
On this page

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 risesFirst checkHow to interpret a change
After connecting an external displayDisconnect that display briefly, keeping the workload similarA repeatable drop suggests the display setup contributes; it does not by itself identify a hardware fault
After opening a particular app or pageSave work, then quit that app or pause the pageIf the change repeats, investigate that workload and its settings
During animations, video or screen sharingPause one activity and compareDistinguish work-related load from load that persists after the activity ends
Gradually over a long sessionRecord the trend, then test apps individuallyGrowth is a clue; a resource graph alone cannot confirm a leak
Following an updateRecord the macOS and app versions and reproduce the same taskCheck 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

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.

Sources and References