En fait, l'algo est tellement simple qu'il doit passer une grosse partie du temps sur i**2. Si le compilo C ne voit pas qu'il peut calculer 4*i*i une seule fois avant -O3, il part avec un désavantage. À moins que ça soit une typo, le code C est 4.*i*i/(4*i*i-1), si ça se trouve le compilo calcule 4.*i*i en double, et 4*i*i en long int, il fait donc deux fois le calcul.
Si ça n'est pas ça, est-ce qu'il n'y aurait pas des implémentations spécifiques de i**2 qui sont plus rapides que i*i? C'est certain que pour i**10, il ne fait pas i*i*i*i*i*i*i*i*i*i, donc il doit y avoir un compromis sur la rapidité entre appeler la fonction puissance et faire la multiplication.
# Optimisation spécifique?
Posté par arnaudus . En réponse au message Je veux bien que JavaScript soit optimisé, mais quand même !.... Évalué à 6. Dernière modification le 26 juin 2024 à 17:44.
En fait, l'algo est tellement simple qu'il doit passer une grosse partie du temps sur
i**2. Si le compilo C ne voit pas qu'il peut calculer4*i*iune seule fois avant -O3, il part avec un désavantage. À moins que ça soit une typo, le code C est4.*i*i/(4*i*i-1), si ça se trouve le compilo calcule4.*i*ien double, et4*i*ien long int, il fait donc deux fois le calcul.Si ça n'est pas ça, est-ce qu'il n'y aurait pas des implémentations spécifiques de
i**2qui sont plus rapides que i*i? C'est certain que pouri**10, il ne fait pas i*i*i*i*i*i*i*i*i*i, donc il doit y avoir un compromis sur la rapidité entre appeler la fonction puissance et faire la multiplication.