Earlier I wrote an article on testing memory using memtest. Memtest actually looks at the memory in a system and checks it for errors. But what about checking the systems use of memory for problems? Well, OS X has a built-in tool call allmemory that can check system or per process memory. In its most simple incantation allmemory can just be run with no options:
allmemory
This is going to result in a few errors if only because allmemory is getting a little long in the tooth. But you can also scan on a per-process basis. To do so, run allmemory with a -proc option and then the pid for the process:
allmemory -proc 13727
You can also use the following options:
- -noframework: doesn’t show data that comes from frameworks (otherwise it does), so this option would only show the spcific process and not dependencies
- -noprocess: doesn’t show the process, so more looking at framework utilization
- -32bit: only show 32-bit processes
- -64bit: only show 64-bit processes
- -v: show address space utilization on a per process basis
- -f: show segment utilization on a per framework basis
- -i: show data from a previous run of the tool, which uses a path after the -i to load that data from
- -o: outputs the data to a specific directory (otherwise it defaults to /tmp/allmemoryDataFiles). Note, when called from other Apple tools, the output is normally set within a dmg or zip in /var/tmp
- -d: loads data from /tmp/allmemoryDataFiles if it exists
- -P: shows information about VM regions used
There are a few other options, but those are the only ones I can remember using. Overall, allmemory is a pretty cool tool and I think that if nothing else it’s helped me to prove to vendors when I have issues with their software. I’m maybe not always happy with their responses but it’s good to prove that there’s a problem… Finally, output can look something like the following: