3 dizi bildirimi olan bir C++ kodum var. Ben NUM=512
ile derlerkeng ++ derleme zamanı dizi boyutuna bağlı mı?
float A[NUM]; float B[NUM]; float C[NUM];
, derleme ben NUM=167772160
ile derleme yaparken, daha uzun sürer,
time g++ -DNUM=512 trials trials.cpp -lm
0.16s user 0.04s system 94% cpu 0.219 total
Ancak hızlı.
time g++ -DNUM=167772160 trials trials.cpp -lm
7.90s user 0.69s system 99% cpu 8.604 total
yıllarda C++ kullanmadım. Derlemeden sonra nesne dosyalarının aynı boyutta olmasına rağmen neden derlemede bir zaman farkı olduğunu bilmek merak ediyorum.
Bu diziler statik veriler midir? –
Küresel bildirimlerdir. – mutelogan
g ++ hangi optimizasyonların yapıldığını bilir. Belki de geçersiz bellek erişimi hakkında uyarı almak için böyle bir dizi ayırır. Karşılaştırmayı tekrar -O0 ile tekrar çalıştırmayı deneyin (belki birden çok kez yapın) ve derlemeyi ve bağlantıyı ayrı ayrı yapın. – j13r