The application does not calculate things, but does i/o, read files, uses network. I want profiler to show it.
I expect something like something like in callgrind that calls clock_gettime each proble.
Or like oprofile that interrupts my application (while it is sleeping or waiting for socket/file/whatever) to see what is it doing.
I want things like "read", "connect", "nanosleep", "send" and especially "fsync" (And all their callers) to be bold (not things like string or number functions that perform calculations).
Platform: GNU/Linux @ i386
Quickly hacked up trivial sampling profiler for linux: http://vi-server.org/vi/simple_sampling_profiler.html
It appends backtrace(3)
to a file on SIGUSR1
, and then converts it to annotated source.
As it probes the program periodically, we'll see functions that waits for something.
And as it walks the stack, we'll see callers too.
Also people from answers to similar questions recommends Zoom.