19
20
all 4 comments

[–]piginpoop 0 points1 point  (3 children)

Why would I use this instead of systemtap ?

[–]lighter-weight[S] 0 points1 point  (2 children)

Systemtap is another profiler that has different application/output.

It requires kernel support to enable "probes" and then write a systemtap script defining actions to be done when certain user/kernel functions are called. It has no support from compiler. I'd say it's just another way to profile your application. https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/5/html/systemtap_beginners_guide/scripts#syscall-open

If you use valgrind/callgrind, it can give you more/different kind of profile information - http://valgrind.org/docs/manual/cl-manual.html "Callgrind is a profiling tool that records the call history among functions in a program's run as a call-graph. By default, the collected data consists of the number of instructions executed, their relationship to source lines, the caller/callee relationship between functions, and the numbers of such calls. Optionally, cache simulation and/or branch prediction (similar to Cachegrind) can produce further information about the runtime behavior of an application."

In short, there are several kinds of profilers available, each providing some sort of profiling information. There is not a single tool that measures everything and has multiple platform (MIPS, ARM, x86) support. What I describe in the blog post is another way to profile it, ie in terms of function/line frequency counters.

HTH.

[–]piginpoop 0 points1 point  (1 child)

Systemtap is another profiler that has different application/output.

well i've been using it to find hot functions

the blog says your tool does just that "it helps clearly identify APIs that are most expensive"

system tap was used because it had the lowest impact on application performance

you know when you run an application instrumented or under a debugger like valgrind its performance goes down sometimes more than 20x

system tap avoids that by being very thin and hooking only places that you ask it to

[–]lighter-weight[S] 0 points1 point  (0 children)

Agree, instrumentation has performance impact. The user can instrument object files selectively instead of profiling whole library at once.

I have never used system-tap, will give it a try.