[cfe-dev] Accuracy of -ftime-report

Argyrios Kyrtzidis kyrtzidis at apple.com
Thu Aug 5 07:36:17 PDT 2010


On 5 Aug 2010, at 15:19, Daniel Dunbar wrote:

> On Thu, Aug 5, 2010 at 6:43 AM, Argyrios Kyrtzidis <kyrtzidis at apple.com> wrote:
>> On 5 Aug 2010, at 14:37, Amaury Pouly wrote:
>> 
>> That can be due to lots of things. Just consider this difference:
>> - Wall time: preception of time form the user. That is, if you run your
>> program at time T and it ends at time T+D, then the wall time is D normally
>> - Processor time: time allocated on the processor, which can even be greater
>> than the wall time if the program uses several processors (if you have two
>> processors, you can in theory use 2*D processor time for a wall time of D).
>> 
>> I don't know how the times are computed but it could be related to these
>> points. And perhaps the time needed to do all the initialisation and loading
>> of the executable is counted somewhere.
>> 
>> Yes but the difference between the 'time' utility and the internal timers is
>> not constant, with '-fsyntax-only' the internal timers report lower numbers
>> but with '-emit-llvm-bc' they report higher ones.
>> In general is 'time' utility the more reliable one ?
> 
> The individual timers are just as reliable as 'time', for tracking
> user time, but you have to know what they mean (i.e., exactly what
> they are counting).
> 
> What is happening here is that some of the timers overlap, I suspect.
> The Clang frontend timer probably is ending up including the LLVM IR
> generation timer.

How do you suggest timing the phases ? If the timers overlap, the percentages are not reliable, right ?
Use 'time' on separate executions (time -fsyntax-only, time -emit-llvm, etc) ?

-Argiris

> 
> - Daniel
> 
>> -Argiris
>> 
>> Amaury Pouly
>> 
>> 
>> 2010/8/5 Argyrios Kyrtzidis <kyrtzidis at apple.com>
>>> 
>>> Hi,
>>> When I try '-ftime-report' the numbers differ from 'time', either higher
>>> or lower, e.g:
>>>> time clang -cc1 lib/VMCore/Dominators.cpp -Iinclude -Ilib/VMCore
>>>> -D_DEBUG -D_GNU_SOURCE -D__STDC_LIMIT_MACROS -D__STDC_CONSTANT_MACROS
>>>> -ftime-report -emit-llvm-bc -o t.o
>>> [LLVM pass timers]
>>> 
>>> ===-------------------------------------------------------------------------===
>>>                          Miscellaneous Ungrouped Timers
>>> 
>>> ===-------------------------------------------------------------------------===
>>>    ---User Time---   --System Time--   --User+System--   ---Wall Time---
>>>  --- Name ---
>>>    0.8070 ( 87.2%)   0.0550 ( 73.7%)   0.8620 ( 86.2%)   0.8620 ( 86.2%)
>>>  Clang front-end timer
>>>    0.0747 (  8.1%)   0.0090 ( 12.0%)   0.0837 (  8.4%)   0.0840 (  8.4%)
>>>  LLVM IR Generation Time
>>>    0.0435 (  4.7%)   0.0106 ( 14.3%)   0.0541 (  5.4%)   0.0541 (  5.4%)
>>>  Code Generation Time
>>>    0.9251 (100.0%)   0.0746 (100.0%)   0.9998 (100.0%)   1.0001 (100.0%)
>>>  Total
>>> 
>>> real 0m0.903s
>>> user 0m0.827s
>>> sys 0m0.074s
>>> 
>>> 
>>>> time clang -cc1 lib/VMCore/Dominators.cpp -Iinclude -Ilib/VMCore
>>>> -D_DEBUG -D_GNU_SOURCE -D__STDC_LIMIT_MACROS -D__STDC_CONSTANT_MACROS
>>>> -ftime-report -fsyntax-only
>>> 
>>> ===-------------------------------------------------------------------------===
>>>                          Miscellaneous Ungrouped Timers
>>> 
>>> ===-------------------------------------------------------------------------===
>>>    ---User Time---   --System Time--   --User+System--   ---Wall Time---
>>>  --- Name ---
>>>    0.6823 (100.0%)   0.0317 (100.0%)   0.7139 (100.0%)   0.7139 (100.0%)
>>>  Clang front-end timer
>>>    0.6823 (100.0%)   0.0317 (100.0%)   0.7139 (100.0%)   0.7139 (100.0%)
>>>  Total
>>> 
>>> real 0m0.736s
>>> user 0m0.690s
>>> sys 0m0.043s
>>> 
>>> 
>>> Why the difference, am I doing something wrong ?
>>> -Argiris
>>> _______________________________________________
>>> cfe-dev mailing list
>>> cfe-dev at cs.uiuc.edu
>>> http://lists.cs.uiuc.edu/mailman/listinfo/cfe-dev
>>> 
>> 
>> 
>> 
>> _______________________________________________
>> cfe-dev mailing list
>> cfe-dev at cs.uiuc.edu
>> http://lists.cs.uiuc.edu/mailman/listinfo/cfe-dev
>> 
>> 





More information about the cfe-dev mailing list