Glossary/Memory

Memory column

Also: memory footprint

Quick answer

The Memory column in Activity Monitor shows how much memory each process is using. The figure reflects the process's memory footprint, so it can include memory that has been compressed, not only data sitting uncompressed in RAM.

Sorting by the Memory column is the quickest way to see which processes use the most memory. It is a per-process number: apps with helper processes are split across several rows.

Adding up every row will not match Memory Used at the bottom of the window. Processes can share memory, and the totals are counted in different ways.

Why an app's memory looks lower than expected

Many apps run helper processes, and each helper has its own row. A browser can show a modest figure on its main row while its helpers add up to much more. Use View, All Processes, Hierarchically to see some helpers under their parent, or add the rows yourself.

How to use the Memory column

Sort by it when memory pressure is yellow or red. Watch whether a process keeps growing over time while you are not doing more with it, which can point to a leak. Quitting and reopening the app releases its memory.

You can add other memory columns from View, Columns, such as compressed memory, to see more detail per process.

What the Memory column measures

macOS keeps a running count for every process called its physical footprint. It tracks the memory the process has written to and owns. The Memory column in Activity Monitor and the MEM column in the top command both show this count.

Because it counts memory the process owns rather than only what is sitting in RAM right now, it can include compressed data and memory used for graphics on behalf of the process. It leaves out files the process has only read, which the system can drop and read again later.

Some memory a driver or system component sets aside on behalf of a process is deliberately left out of its footprint, because the process has no control over its size. So the Memory column is a good guide for comparing processes, but not an exact record of every byte a process caused the system to use.

Memory vs Real Mem, Private Mem and Shared Mem

In the Memory tab, choose View > Columns to add more memory columns. Each one counts something different:

  • Memory: the process's physical footprint. Use this one to compare processes.
  • Real Mem: how much of the process is in RAM right now, also called resident size. It leaves out compressed data and can include shared memory, so it can be higher or lower than Memory.
  • Private Mem: resident memory used only by this process.
  • Shared Mem: resident memory the process shares with other processes, such as system libraries.
  • Purgeable Mem: memory the app has marked as safe for the system to discard if it needs room.
  • VM Compressed: how much of the process's memory has been compressed.

How to check a process's memory in Terminal

These commands only read information. They are useful when Activity Monitor is not open or you want to log a number over time.

  1. Run top -o mem to list processes sorted by memory. The MEM column matches Activity Monitor's Memory column. Press q to quit.
  2. Run top -l 1 -o mem -n 10 -stats pid,command,mem to print the ten largest processes once and exit.
  3. Run footprint followed by an app name, such as footprint Safari, to see its memory by category. The phys_footprint line at the end matches the Memory column, and phys_footprint_peak is the highest it has been since the process started.
  4. Be aware that ps shows RSS, which is resident size like the Real Mem column, so its numbers will not match the Memory column.

How to spot a memory leak with the Memory column

  1. In the Memory tab, choose View > Update Frequency > Very often (1 sec) if you want faster updates.
  2. Find the app, including its helper processes, and note its Memory figure.
  3. Keep using the app the way you normally do, without opening more documents or windows.
  4. Check the figure again after some time. If it keeps climbing and never drops back, even when you close what you opened, the app is likely leaking memory.
  5. Quit and reopen the app to release the memory. If it happens again, check for an update to the app.

Questions people ask

What does the Memory column in Activity Monitor mean?

It is how much memory each process is using, based on its memory footprint. Sort by it to find the largest users.

Why don't the Memory column values add up to Memory Used?

Processes share some memory, and the system totals are measured differently, so the rows and the total will not match exactly.

Why does one app show many rows?

The app runs helper processes, and Activity Monitor lists each process separately.

Is the Memory column the same as Real Mem?

No. Memory is the process's footprint, which can include compressed data. Real Mem is only what is in RAM right now, including some memory shared with other processes.

Does the Memory column include GPU memory?

It can include graphics memory the system has charged to that process, because the footprint count covers several kinds of memory, not only regular app data.

Why does the Memory column not match ps or other tools?

Tools such as `ps` report resident size, which counts memory differently. The `top` command's MEM column and the `footprint` command use the same footprint count as Activity Monitor.

Related

Looking for something better than Activity Monitor? See the best Activity Monitor alternatives for Mac, or browse every term in the glossary.