PS.OHM
PS.OHM

Reputation: 483

How to calculate gcc compilation time?

I want to know GCC compile time. Does GCC have any command or option for calculate compile time?

I have a file named hello.c and will compile it. I want to know the time spent to compile it.

Upvotes: 24

Views: 26224

Answers (2)

greatwolf
greatwolf

Reputation: 20858

To get a more comprehensive breakdown of compilation-time than what time can provide you can use -ftime-report:

g++ -s -O3 -ftime-report hello.c -o hello.exe

Execution times (seconds)
 callgraph construction:   0.01 ( 1%) usr     224 kB ( 1%) ggc
 callgraph optimization:   0.01 ( 1%) usr     147 kB ( 0%) ggc
 cfg cleanup           :   0.01 ( 1%) usr       8 kB ( 0%) ggc
 df live regs          :   0.02 ( 2%) usr       0 kB ( 0%) ggc
 df live&initialized regs:   0.01 ( 1%) usr       0 kB ( 0%) ggc
 alias analysis        :   0.01 ( 1%) usr      67 kB ( 0%) ggc
 preprocessing         :   0.08 (10%) usr    2869 kB ( 8%) ggc
 parser                :   0.31 (40%) usr   24239 kB (66%) ggc
 name lookup           :   0.06 ( 7%) usr    3086 kB ( 8%) ggc
 inline heuristics     :   0.01 ( 1%) usr      16 kB ( 0%) ggc
 integration           :   0.01 ( 1%) usr    1499 kB ( 4%) ggc
 tree gimplify         :   0.01 ( 1%) usr     422 kB ( 1%) ggc
 tree CFG cleanup      :   0.01 ( 1%) usr      12 kB ( 0%) ggc
 tree VRP              :   0.01 ( 1%) usr     146 kB ( 0%) ggc
 tree PTA              :   0.01 ( 1%) usr      66 kB ( 0%) ggc
 tree SSA rewrite      :   0.01 ( 1%) usr     159 kB ( 0%) ggc
 tree SSA incremental  :   0.01 ( 1%) usr      35 kB ( 0%) ggc
 tree operand scan     :   0.01 ( 1%) usr     628 kB ( 2%) ggc
 tree PRE              :   0.02 ( 3%) usr     101 kB ( 0%) ggc
 tree FRE              :   0.01 ( 1%) usr      25 kB ( 0%) ggc
 dominance computation :   0.01 ( 1%) usr       0 kB ( 0%) ggc
 expand                :   0.03 ( 4%) usr     528 kB ( 1%) ggc
 CSE                   :   0.01 ( 1%) usr       8 kB ( 0%) ggc
 CSE 2                 :   0.01 ( 1%) usr       6 kB ( 0%) ggc
 branch prediction     :   0.01 ( 1%) usr      67 kB ( 0%) ggc
 combiner              :   0.01 ( 1%) usr      48 kB ( 0%) ggc
 integrated RA         :   0.02 ( 2%) usr      53 kB ( 0%) ggc
 reload                :   0.01 ( 2%) usr     114 kB ( 0%) ggc
 reload CSE regs       :   0.01 ( 1%) usr      95 kB ( 0%) ggc
 final                 :   0.01 ( 1%) usr       3 kB ( 0%) ggc
 TOTAL                 :   0.79             36953 kB

This will work on any platform since you're using a switch supported by the compiler itself rather than relying on another timing program.

Upvotes: 84

Carl Norum
Carl Norum

Reputation: 225032

You can use the time utility:

$ time gcc -c hello.c

real    0m0.224s
user    0m0.013s
sys     0m0.010s

Here's a link to the man page.

Upvotes: 25

Related Questions