Messages in this thread | | | Date | Tue, 13 Mar 2012 14:44:00 +0100 | From | Frederic Weisbecker <> | Subject | Re: [PATCH 2/2] perf: Add a new sort order: SORT_INCLUSIVE |
| |
On Thu, Mar 08, 2012 at 10:22:26AM -0800, Arun Sharma wrote: > 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.
Ok that makes sense.
Thanks.
> > 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(); > } > } >
| |