Ho un codice C++ che ha 3 dichiarazioni di array.Il tempo di compilazione g ++ dipende dalla dimensione dell'array?
float A[NUM]; float B[NUM]; float C[NUM];
Quando compilo con NUM=512
, la compilazione è veloce
time g++ -DNUM=512 trials trials.cpp -lm
0.16s user 0.04s system 94% cpu 0.219 total
Tuttavia, quando compilo con NUM=167772160
, ci vuole più tempo.
time g++ -DNUM=167772160 trials trials.cpp -lm
7.90s user 0.69s system 99% cpu 8.604 total
Non ho usato C++ in anni. Sono curioso di sapere perché c'è una differenza di tempo nella compilazione anche se i file oggetto dopo la compilazione sono della stessa dimensione.
Questi dati sono statici? –
Sono dichiarazioni globali. – mutelogan
Chissà quali ottimizzazioni g ++ prova a fare. Forse assegna una tale matrice per verificare l'esistenza di un accesso di memoria non valido. Prova a eseguire nuovamente il benchmark (forse fallo più volte) con -O0 e compila separatamente la compilation e il link. – j13r