Why Chrome uses so much memory on a Mac

Chrome uses a lot of memory because it runs as many separate processes instead of one: usually a separate process for each site you have open, plus others for extensions, graphics and the browser itself. That design keeps one broken page from taking down the rest, and it keeps sites apart for security, but each process carries its own overhead, so the total is large. The memory is mostly doing something, and the fix is to find the few heavy tabs and extensions, not to fight the whole browser.

This post explains what you are looking at, how to find the heavy process, and which changes help.

Why there are so many processes

Look at Chrome’s processes and you will see far more than the tabs on screen. There is a main browser process, a process that draws graphics, one that handles network traffic, processes for many extensions, and renderer processes for the pages themselves. Sites are usually kept in separate renderers, so ten tabs from ten sites can mean about ten renderers, and a page with embedded content from other sites can bring in more.

The trade is deliberate:

  • Stability. If one page crashes, the rest of the tabs stay open.
  • Security. A page in one process cannot easily read what is in another.
  • Responsiveness. A slow page does not freeze the others.

The cost is that each process carries its own overhead, so some of the same work and data is repeated from one process to the next. Putting everything in one process would use less memory and give up those protections.

So a Chrome that holds several gigabytes with twenty tabs open is not necessarily broken. It is the shape of the design, and what you do is trim what is on the list.

What else is in the total

Extensions. Many extensions run in a process of their own, and some are active on every page you visit. A long list of extensions adds processes, and a few of them can cost more than a tab.

Heavy web apps. A mail client, a design tool, a spreadsheet, a video call and a chat app in a browser tab each hold a lot of data. One of them can outweigh twenty simple pages.

Tabs you forgot. A tab left open for a week keeps its memory until Chrome discards it or you close it. Pages that refresh themselves, such as live dashboards, social feeds and live scores, can keep growing.

Media. Video, sound and big images stay in memory while a tab plays them or sits behind other tabs.

The browser also keeps some data in memory so that pages you go back to load faster. That is memory used on purpose, and Chrome is designed to give some of it back when the Mac runs short. A big number is not by itself a sign that your Mac is short of memory. Memory pressure on a Mac: when you actually need more RAM shows how to tell.

See which process is heavy

There are two places to look, and they answer different questions.

What is Chrome as a whole using? In Foreman, the Processes page lists Chrome as one app. Its helper processes sit under it, added up, and the row opens to show each of them. Sort the Memory column and you see Chrome’s total against everything else, and then open the row to see which helper is the heaviest. Each process shows a PID, which you can add as a column from the header’s menu. That is the bridge to the second place.

Which tab or extension is that process? Foreman shows you the process, and Chrome itself knows which tab or extension it belongs to. Chrome has a list of the tabs, extensions and other processes it is running, with the memory of each, in its Window menu. Match the process in Chrome’s list to the heavy one you found, and you know the tab. Closing that tab in Chrome is a cleaner fix than ending the process from outside, because Chrome closes it properly.

If you end a single helper process instead, End Task asks it to stop, and whatever it was serving, a tab or an extension, stops with it until you reload it. Quitting Chrome entirely with End Task asks it to quit the normal way, as Command-Q does, so it closes properly.

How to tell if one browser tab is slowing down your Mac walks through finding the tab step by step, and what are helper and renderer processes on a Mac explains the names you will see.

What actually helps

In rough order of effect:

  1. Close tabs you are not reading. This is the one change that always works. If you want to keep a page, bookmark it or put it in a reading list. Twenty tabs open “for later” are twenty processes today.
  2. Find the one or two heavy tabs and deal with them. A single web app can use more than all your other tabs together. Close it, or reload it, and its memory goes back.
  3. Remove extensions you do not use. Look at the extensions list in Chrome and switch off or remove what you have forgotten. Fewer extensions means fewer processes.
  4. Turn on Chrome’s Memory Saver. Chrome has a setting, in its Settings under Performance, that frees memory from tabs you have not used for a while. Such a tab reloads when you click it.
  5. Restart Chrome now and then. Chrome can hold on to more memory the longer it runs. Quitting and opening it again, with your tabs restored, gives all of it back.
  6. Try another browser for heavy sites. Safari is built into macOS and tends to treat the battery and memory differently from Chrome. Use whichever fits what you do.

What does not help is a “memory cleaner”. It cannot make the browser need less, and the memory will be used again as soon as the browser asks for it. Foreman does not free memory either. What it does is show you where the memory is, so you can choose what to close.

When Chrome is the problem, and when it is not

A Chrome using a lot of memory is only a problem when the Mac is short of it. Check the signs:

  • Memory pressure stays high.
  • Switching tabs or apps has a pause.
  • The Mac is using swap and the disk is busy. Is your Mac using swap? explains that.

If none of that is happening, Chrome is using memory that the Mac has to spare, and there is nothing to fix. If it is, trim as above.

If you need Chrome open but not right now, say for a work dashboard you check twice a day, Foreman’s Efficiency Mode can run it at background priority while it is in the background, held to about a quarter of the processor time it would otherwise take, with its disk use turned down. It does not reduce the memory the app holds, so it is a way to rein in a busy browser, not a large one.

Foreman is $12 once and free for 24 hours. The steps above, from closing tabs to Chrome’s own process list, work without it.