Cwiczenie
Z Studia Informatyczne
Przejdź do nawigacjiPrzejdź do wyszukiwaniaProste eksperymenty ze środowiskiem
Który program wykona się szybciej:
x = 1.0; for( i = 0; i < N; i++) x = x/3.0;
czy
x = 1.0; f =; for( i = 0; i < N; i++) x = x*f;
Oczywiście, szybszy będzie program nie wykorzystujący dzielenia. Optymalizujący
kompilator (\lstux!gcc -O3!) strawi, a nawet będzie jeszcze bardziej zadowolony z pozornie
rozrzutnego kodu
x = 1.0; for( i = 0; i < N; i++) x = x*(1.0/3.0);
dlatego, że stałą, przez którą trzeba mnożyć
, wyliczy przed wykonaniem programu.Sprawdź, czy z wyłączoną optymalizacją ten kod okaże się najwolniejszy ze wszystkich...