Cwiczenie

Z Studia Informatyczne
Przejdź do nawigacjiPrzejdź do wyszukiwania

Proste 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 = 1.0/3.0;
for( i = 0; i < N; i++)
Parser nie mógł rozpoznać (błąd składni): {\displaystyle 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ć <math>x}
, wyliczy przed wykonaniem

programu.

Sprawdź, czy z wyłączoną optymalizacją ten kod okaże się najwolniejszy ze wszystkich...