Home » Android » android – What is the meaning of Incl CPU Time, Excl CPU Time, Incl Real CPU Time, Excl Real CPU Time in traceview?

android – What is the meaning of Incl CPU Time, Excl CPU Time, Incl Real CPU Time, Excl Real CPU Time in traceview?

Posted by: admin April 23, 2020 Leave a comment

Questions:

1) Exclusive time is the time spent in the method
2) Inclusive time is the time spent in the method plus the time spent in any called functions
3) We refer to calling methods as “parents” and called methods as “children.”
Reference Link : Click here

Question here is :

what are difference between

  • Incl CPU Time & Incl Real CPU Time ?
  • Excl CPU Time & Excl Real CPU Time ?

in my one example trace file
for Method1() : Incl CPU Time = 242 msec & Incl Real CPU Time = 5012 msec

  • i can not identify reason behind 5012-242 = 4770 msec gap in above both times.

Please help me if you have any idea.

How to&Answers:

cpu time is the time for which the process uses the cpu and cpu real time is the total time from the starting of process to end of process it includes waiting time of process to execute.

Answer:

Here’s the DDMS documentation

Incl CPU time is the inclusive cpu time. It is the sum of the time spent in the function itself, as well as the sum of the times of all functions that it calls.

Excl CPU time is the exclusive cpu time. It is only the time spent in the function itself. You’ll notice that it is always the same as the “incl time” of the “self” child.

The documentation doesn’t clarify the difference between CPU time and real time, but I agree with Neetesh that CPU time is the time that the function is actually running (this would not include waiting on IO) and the real time is the wall clock time (which would include time spent doing IO).

Answer:

from the source code of .trace, you can see the cpu time detail different from the real cpu time, it’s the same with the description of the android doc:
CPU time considers only the time that the thread is actively using CPU time, and real time provides absolute timing information from the moment your app enters a method to when it exits that method—regardless of whether the thread is active or sleeping.