I\'m attempting to profile some c++ code on my mac (os x Lion) and I haven\'t been able to find anything useful. I\'m looking for a profiler that will tell me what functions
Instruments is the tool to use. To overcome the issue of the blank traces, make sure that you open Instruments from within XCode:
Xcode > Open Developer Tool > Instruments
If you open Instruments from an old Instruments icon that you pinned to your dock before the last update to XCode, it will give you blank traces.
Instruments really is the right answer, but if you can't figure out how to use it then another option is the profiler in the built-in Activity Monitor application. In Activity Monitor you can get info on any running process and there's a button to sample its execution for a while. You'll have to start your program, switch to Activity Monitor, find the process, and then sample it.
Additionally you can do 'poor man's profiling' simply by running the program in a debugger and pausing it manually half a dozen times or so and noting the call stack at those times. It's very simple but it works surprisingly well as a first pass for a significant fraction of programs.
There is also a command line sample
program which samples the callstack like the others do.
Instruments is the tool to use. A full explanation of Instruments is outside the scope of this answer, but here's a quick start guide:
Of the tools available, the ones that will be most frequently useful are:
You can also start an invocation of instruments
on the command line:
instruments -l 30000 -t Time\ Profiler -p 5773
see instructions.
1 One easy way to open Instruments is to use Spotlight: Just click on the magnifying glass in the upper right corner of the taskbar (next to the clock) and type "Instruments".
2 Click "Choose Target..." and navigate to the path of your executable.