|
From: Christoph B. <bar...@or...> - 2006-10-24 16:05:03
|
Am Dienstag, 24. Oktober 2006 17:51 schrieb Nicholas Nethercote:
>
> > : Int i;
> > : Addr ips[VG_DEEPEST_BACKTRACE];
> > : Bool same;
> > : UWord hash;
> > : ExeContext* new_ec;
> > : ExeContext* list;
> > : UInt n_ips;
> >
> > 7 2.2e-05 : init_ExeContext_storage();
> > 276 8.8e-04 : vg_assert(VG_(clo_backtrace_size) >= 1 &&
> >
> > : VG_(clo_backtrace_size) <=
> > : VG_DEEPEST_BACKTRACE);
>
> Do you know what these two columns mean?
>
OProfile is a stochastic profiler. Each 100000 events of type CPU_CLK_UNHALTED
it checks where the execution currently is. Then the counter for this
position is incremented. Here we see the counter.
For example: During the whole profiling run oprofile stopped 7 times in the
line with
init_ExeContext_storage();
It did not stop inside of the called function but in the code of the current
function preparing or evaluating the call to init_ExeContext_storage();
The second number is the percantage that this line has compared to all events.
Here the number is neglible. Another example is:
11124624 35.3958 : if (list->ips[i] != ips[i]) {
Here we see that 35.4% of all taken samples have been in this line of code. If
the profiling session is long enough (and I think mine was long enough) one
can conclude that 35.4% of the whole runtime during the profiling session has
been spent in this line of code.
Christoph Bartoschek
|