What is the WindowServer process on Mac?

WindowServer is the macOS system process that draws everything you see on screen: every window, menu, icon, animation, and font. You cannot quit it. You cannot disable it. But you can understand why it sometimes uses a lot of memory, and what to do when it does.

Open Activity Monitor, type "WindowServer" into the search box, and you will find a single process sitting there, often using several hundred megabytes of memory. If you have been running your Mac for a few days without restarting, or you have an external display connected, it may be using considerably more. Some people see 2 GB or 3 GB and immediately worry something is wrong.

Usually it isn't. This post explains what WindowServer actually does, why its memory use can climb, and the small number of situations where climbing means a real problem rather than just busy work.

What does WindowServer actually do?

WindowServer is the display compositor at the heart of macOS. Every single thing you see rendered on screen passes through it. The title bar of this browser window, the Dock along the bottom, the menu bar at the top, the rounded corners on every dialogue box, the smooth animation when you switch Spaces, the fonts on every page: WindowServer is responsible for all of it.

Apple built macOS around a compositing window server model, which means every app draws its content into its own private buffer, then hands those buffers to WindowServer. WindowServer combines them all into the final picture you see, applies transparency, shadows, and blur effects, then pushes the result to your display hardware. It does this continuously, typically at 60 frames per second, and at 120 fps on a ProMotion display.

Because of this architecture, WindowServer must hold a copy of every visible window surface in memory at all times. More windows open means more surfaces. More displays means more surfaces at higher resolution. The memory use you see in Activity Monitor is, in large part, this collection of surface buffers.

"WindowServer holds a copy of every visible window surface in memory. More windows, more displays, more memory."

Is WindowServer's memory use a problem?

A few hundred megabytes to roughly 1 GB is entirely normal, depending on how many windows you have open and whether you are running one display or several. A single 4K external monitor adds a significant surface area that needs to be composited in real time. Two external displays, many open apps spread across multiple Spaces, and a few days of uptime can push WindowServer well above 1 GB without anything being wrong.

The useful question is not "how much memory is WindowServer using?" but rather: is the number growing steadily without any reason for it to grow? If you notice WindowServer climbing from 800 MB to 1.5 GB to 2.5 GB over several days while you are not opening more windows, that pattern suggests a memory leak rather than legitimate work.

To see the overall picture, Activity Monitor's Memory tab is the right place to look. The memory pressure graph at the bottom tells you whether the system as a whole is coping. WindowServer can hold 2 GB and pressure can still be green, because it is using that memory legitimately. Pressure turns yellow or red when the system cannot satisfy demands from all processes together, not because of any one number in isolation. If you want a fuller walkthrough of how to read those numbers, our Activity Monitor guide covers it step by step.

Why is WindowServer using so much memory?

There are a few common causes, and it is worth distinguishing between the ones that are normal and the one that isn't.

Normal causes:

  • External displays. Each additional screen multiplies the surface area WindowServer must composite. A 4K display at full resolution is a large buffer. Two of them is twice that.
  • Lots of open windows across multiple Spaces. macOS keeps window surfaces resident even when they are on a Space you cannot currently see, so that switching feels instant. More windows means more surfaces kept in memory.
  • Certain animations and screen recording tools. Screen recording and streaming software hook into WindowServer's output pipeline, which can increase its working set significantly while they are active.

The abnormal cause: memory leaks. WindowServer memory leaks have been documented in macOS Sequoia (2024) and Tahoe (2025). The Sequoia leak was particularly noticeable when using iPhone Mirroring or when an external display had been connected for an extended period. With a leak, WindowServer's memory grows continuously even when you are not opening new windows, and it never releases that memory until you restart the Mac.

If you suspect a leak, the simplest diagnostic is to restart and watch how quickly WindowServer's number climbs back over the following days. If it jumps to 2 GB within hours of a fresh restart, something specific is triggering it. If it grows slowly over a week, that may just be legitimate accumulation.

How do I reduce WindowServer memory use?

There is no way to trim WindowServer's memory directly. What you can do is reduce the work it needs to do, or clear a leak by restarting.

Restart your Mac. This is the most reliable fix when a leak is involved. A restart clears the entire compositor state and WindowServer starts fresh. If you have a Mac that has been running for a week, you will almost certainly see WindowServer drop significantly after a restart.

Close windows you are not using. Each window has a compositor surface. Fewer surfaces means less memory. The biggest wins often come from apps with lots of background windows: browsers with dozens of tabs, editors with many open documents, apps you launched days ago and forgot about.

Disconnect external displays when you are not using them. WindowServer must maintain a full compositor pipeline for every connected display, even when the display is off or asleep. If you frequently leave a monitor plugged in overnight or when you are away from your desk, disconnecting it gives WindowServer less to track.

Reduce motion on macOS Tahoe. Tahoe introduced Liquid Glass, a system-wide visual language with heavier translucency and animation effects than previous macOS versions. For older Macs running Tahoe, or any Mac where WindowServer's CPU or memory is noticeably higher after updating, going to System Settings, then Accessibility, then Display, and turning on Reduce Motion lowers the rendering overhead of those effects.

Buy time before you can restart. If WindowServer is leaking and a restart is not immediately convenient, freeing memory held by other apps reduces the overall pressure on your system while WindowServer holds its allocation. That is exactly what Shiny does: it asks macOS to release inactive memory from other processes, buying your system breathing room without requiring a restart. It will not shrink WindowServer itself, but it can keep your Mac feeling responsive while you finish what you are doing.

Should I worry about WindowServer high CPU?

Short spikes are normal. When you drag a window, play a video, trigger a Mission Control animation, or switch Spaces, WindowServer does a burst of rendering work and its CPU use spikes accordingly. That is expected and nothing to act on.

Sustained high CPU with nothing obviously demanding on screen is different. If WindowServer is using 30%, 50%, or more of a CPU core consistently while you are just reading a document, something is requesting constant redraws. The most common culprits are apps with animated elements in their windows (live clocks, real-time dashboards, animated backgrounds), browser tabs running heavy JavaScript, and occasionally a buggy system extension that hooks into the display pipeline.

The approach is the same as debugging any process: open Activity Monitor, sort by CPU, and quit apps one at a time while watching whether WindowServer's CPU drops. When it drops, you have found the cause. The fix is either to update that app, report the issue to the developer, or leave it closed.

One thing to note: Apple's guidance on Activity Monitor is that you should look at the overall system picture rather than reacting to any single process. WindowServer will always appear in the list. Its presence is not a problem; its trajectory is what matters.

Common follow-up questions

Why is WindowServer using so much memory on my Mac?
The most common causes are multiple external displays connected for a long time, a large number of open windows spread across many Spaces, and certain screen recording or capture tools. In macOS Sequoia and Tahoe, a documented memory leak can also cause WindowServer to grow steadily over days without releasing memory. Restarting the Mac clears it.
Can I quit or disable WindowServer?
No. WindowServer is the core macOS process responsible for drawing everything on screen. Quitting it would end your entire graphical session. You will see it in Activity Monitor but there is no way to stop or disable it. It is part of macOS itself.
Why does WindowServer use high CPU?
WindowServer CPU spikes during heavy rendering work: playing video in many windows at once, driving a high-resolution external display, running lots of animations, or working with a screen recording tool. Short spikes are normal. If CPU stays consistently high with nothing demanding on screen, a misbehaving app may be requesting constant redraws. Try quitting apps one by one while watching Activity Monitor to find the culprit.
Does WindowServer leak memory in macOS Sequoia or Tahoe?
Yes, memory leaks in WindowServer have been documented in both macOS Sequoia (2024) and Tahoe (2025). The Sequoia leak was particularly noticeable when using iPhone Mirroring or external displays for extended periods. If your WindowServer memory grows steadily over several days, a restart is the simplest fix. Reducing motion in System Settings > Accessibility can also help on Tahoe with Liquid Glass animations.
How do I reduce WindowServer memory use?
Restart your Mac to clear any leaked memory. Close windows and apps you are not using, especially those on secondary displays. On macOS Tahoe, go to System Settings > Accessibility > Display and turn on Reduce Motion to limit Liquid Glass animation overhead. Disconnecting external displays when not in use also helps. If you need to buy time before a restart, freeing other apps' memory with a tool like Shiny reduces overall pressure while WindowServer holds its allocation.