3 つの配列宣言を持つ C++ コードがあります。
float A[NUM];
float B[NUM];
float C[NUM];
でコンパイルするとNUM=512
、コンパイルが高速です
time g++ -DNUM=512 trials trials.cpp -lm
0.16s user 0.04s system 94% cpu 0.219 total
ただし、 でコンパイルするとNUM=167772160
、さらに時間がかかります。
time g++ -DNUM=167772160 trials trials.cpp -lm
7.90s user 0.69s system 99% cpu 8.604 total
私は何年も C++ を使っていません。コンパイル後のオブジェクトファイルのサイズは同じなのに、コンパイルに時間差があるのはなぜか知りたいです。