Taken from my answer at Server Fault:
Mac OS X Memory Jargon:
Wired : This refers to kernel code and such. Memory that should not ever be moved out of the RAM. Also know as resident memory.
Shared : Memory that is shared between two or more processes. Both processes would show this amount of memory so it can be a bit misleading as to how much memory is actually in use.
Real : This is the "real" memory usage for an application as reported by task_info() - a rough count of the number of physical pages that the current process has. (RSIZE)
Private : This is memory that a process is using solely on its own that is used in Resident memory. (RPRVT)
Virtual : The total amount of address space in the process that's mapped to anything - whether that's an arbitrarily large space for variables or anything - it does not equate to actual VM use. (VSIZE)
Active : Memory currently labelled as active and is used RAM.
Inactive : "Inactive memory is no longer being used and has been cached to disk. It will remain in RAM until another application needs the space. Leaving this information in RAM is to your advantage if you (or a client of your computer) come back to it later." - Mac OS X Help
Free : The amount of RAM actually available without any data.
The best documentation I know of (and have been able to find in followup research) is Apple's own Managing Memory article on their developer website.
Other worthwhile sources: Darwin-dev mailing list: [1], [2] and an old article on MacOSXHints. Additionally Mike Ash has posted a good layman's introduction on his blog
Yes - the per process memory statistics and mach call counters mean the same thing as the system wide statistics.
Activity Monitor helps you break down which specific processes are making up the conglomerated statistics if you use the screens shown above. You may also find the sysdoagnose
command useful in probing how the various numbers all add up if you prefer a textual output as opposed to a combined graphical and textual one.
Best Answer
The relation between them is this:
Memory = The amount of memory the process has reserved for its use.
Compressed mem = The amount of memory (a subset of "Memory") that the operating system has used its compression algorithm on
Real mem = The amount of real memory that is actually used by the process (i.e. a sum of the memory that hasn't been compressed, and the size of the result of the compression algorithm)
So in this case the process thinks it has reserved 976,2 MB for its use. The system took 649,7 MB of that memory and compressed it. That leaves 326,5 MB that wasn't compressed plus the size of the compressed memory after it was compressed - which in this case is approx. 77,2 MB. The total of actual memory used by the process is then 403,7 MB.