How To Record CPU and Memory Usage Data
I want to profile the execution of a program to see what in particular is slowing it down - whether it hits a memory cap or if my CPU is not powerful enough.
Activity Monitor (the one that comes with OS X) is great, but I don't think it can record data (i.e. I think you can only see current RAM and CPU usage, not usage from the past).
I want the usage broken down by process if possible, so I can control for other things spiking in usage.
Do you know of any application that has this functionality?
Solution 1:
To see if CPU or memory is the issue you might start with iostat and vm_stat You would run these from a Terminal.
To get it to continually record you need to run it as
iostat n
where n is the number of seconds between executions.
If you need to look at memory usage then you would want
vm_stat n
If you want to get information on a particular program then you would probably need to write a script that called something like
ps wwaux | grep your_program_name
over and over.