894Fermer896
GodzilLe 14/05/2015 à 10:33
Juste pour m'amuser, j'ai compilé les version des posts 866, 882 et 886 (celui la en deux version, une avec la division entiere, l'autre avec le modulo)

Tout compilé en gcc -O3 fizz_xxx.c -o fizz_xxx

Premier constat:
[godzil@jiji Code]$ ls -l fizz_*
-rwxr-xr-x 1 godzil godzil 5227 May 14 12:22 fizz_882
-rwxr-xr-x 1 godzil godzil 5211 May 14 12:23 fizz_886
-rwxr-xr-x 1 godzil godzil 5613 May 14 12:04 fizz_kevin866
-rwxr-xr-x 1 godzil godzil 5211 May 14 12:23 fizz_modulo886

Kevin je peux t'appeler l'optimisateur humain!
On vois aussi que utiliser une division entiere + multiplication n'a pas d'impact sur la taille du code generé.

On remarquera aussi que la difference entre la version du 882 qui fait plusieurs fois le meem calcul est pas enorme comparé a la version du 886.

Essayont de voir ce qu'il se passe. Un coup de objdump -d fizz_XXX > fizz_XXX.s:

tromb Fichier joint : fizz_882.s
tromb Fichier joint : fizz_886.s
tromb Fichier joint : fizz_kevin866.s
tromb Fichier joint : fizz_modulo886.s

un peu d'explication plus tard dans la matinée