2010-06-11 16 views
11

Chcę poznać czas kompilacji GCC. Czy GCC ma jakieś polecenie lub opcję do obliczenia czasu kompilacji?Jak obliczyć czas kompilacji gcc?

Mam plik o nazwie hello.c i skompiluję go. Chcę poznać czas poświęcony na skompilowanie go.

Odpowiedz

18

Można użyć narzędzia time:

$ time gcc -c hello.c 

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

Oto link to the man page.

+0

czy różnica czasu wskazuje stan oczekiwania procesu? real = użytkownik + sys + czas (proces oczekiwania na procesor). próbuje zrozumieć, czy jest inny czynnik do tego? –

+2

Czas sys to ilość czasu spędzanego w wywołaniach systemowych. Chcesz użyć "prawdziwego" czasu, jeśli chcesz wiedzieć, jak długo trwało cały proces. – jer

53

Aby uzyskać bardziej wyczerpujące zestawienie kompilacji czasie niż czas może dostarczyć można użyć -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 

To będzie działać na każdej platformie, ponieważ używasz przełącznik obsługiwany przez samą raczej kompilator niż poleganie na innym programie czasowym.

Powiązane problemy