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.
Hence taking the difference of starts and ends will give you execution time of test_case() in second multiplied by CLOCKS_PER_SEC . CLOCKS_PER_SEC is the number of clock ticks per second. Compile time calculation can be done using template metaprogramming.
You mean compiling gcc from sources? Depends on what machine you have. I don't compile gcc very often, but it would probably take about 10–15 minutes on my work-machine. At home, it would probably take somewhere between 30–60 minutes.
You typically don't want to mess the system's default GCC because other packages may depend on the default version. Depending on the speed of your computer the build phase could take from about 30 minutes to a few hours.
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.
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.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With