Messages in this thread | | | Date | Thu, 8 Mar 2012 10:22:26 -0800 | From | Arun Sharma <> | Subject | Re: [PATCH 2/2] perf: Add a new sort order: SORT_INCLUSIVE |
| |
On Thu, Mar 08, 2012 at 04:39:36PM +0100, Frederic Weisbecker wrote: > > I don't yet understand the point of this. > > Imagine those three hists: > > a -> b -> c > a -> b -> d > a-> e -> f > > The fractal inverted mode (-G) will report this: > > a-- > | > ----- b > | | > | -----c > | | > | -----d > | > ----- e > | > -----f >
Please see the test program attached. It has only two paths from main() to c(). But for this discussion, imagine a callgraph with 10 different paths.
With -G, c() appears 10 times in the callgraph and the user is required to manually sum up the samples to realize that the callgraph under c() is very expensive.
With -s inclusive, c() will show up at the very top after main().
-Arun
#include <stdio.h>
int sum = 0;
#define LOOP(n) \ { \ int j; \ for (j = 0; j < 10000; j++) { \ sum += j; \ } \ }
int f() { LOOP(100); }
int d() { LOOP(100); f(); }
int e() { LOOP(100); f(); }
int c() { LOOP(100); d(); LOOP(100); e(); }
int b() { LOOP(70); c(); }
int a() { LOOP(30); c(); }
int main() { int i; for (i = 0; i < 10000; i++) { a(); b(); } }
| |