IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Voir le flux RSS

Le Blog d'un Ninja codeur

Optimisation en JavaScript : Fonctions Math.floor et Math.min

Noter ce billet
par , 29/10/2014 à 03h22 (1375 Affichages)
Pour tronquer un nombre flottant et le convertir ainsi en nombre entier non signé, il est assez courant de voir l'opérateur >> (décalage binaire vers la droite) au lieu de la fonction standard Math.floor.

Est-ce justifié en terme de performance ?


Comme on peut le voir ci-dessus, la comparaison sur jsperf de ces deux méthodes indique que la fonction standard Math.floor est tout aussi efficace, voire plus que l'opérateur >>. La fonction Math.floor a aussi deux autres vertus. Elle est plus explicite que >> 0 et elle préserve le nombre de bits du nombre, ce que ne fait pas le décalage binaire vers la droite puisque qu'il converti le nombre à 32 bits malgré le fait que JavaScript gère des nombres de 64 bits.

Il y a une autre construction syntaxique assez fréquente, qui est celle de l'opérateur ternaire ? : pour comparer deux valeurs entre elles. Mais est-ce cet opérateur ternaire est plus rapide que la fonction Math.min ?


Le site jsperf indique que contrairement à l'intuition, la fonction Math.min est tout aussi rapide que l'opérateur ternaire, en tout ca sur un navigateur comme Firefox 33.

Les résultats de performances obtenus pour les fonctions standards Math.floor et Math.min nous montre que les fonctions mathématiques en JavaScript sont plutôt optimisées et qu'il est donc préférable de les utiliser, d'autant plus qu'elles sont plus lisibles et explicites que d'autres constructions syntaxiques et qu'elles préservent le nombre de bits.

Envoyer le billet « Optimisation en JavaScript : Fonctions Math.floor et Math.min » dans le blog Viadeo Envoyer le billet « Optimisation en JavaScript : Fonctions Math.floor et Math.min » dans le blog Twitter Envoyer le billet « Optimisation en JavaScript : Fonctions Math.floor et Math.min » dans le blog Google Envoyer le billet « Optimisation en JavaScript : Fonctions Math.floor et Math.min » dans le blog Facebook Envoyer le billet « Optimisation en JavaScript : Fonctions Math.floor et Math.min » dans le blog Digg Envoyer le billet « Optimisation en JavaScript : Fonctions Math.floor et Math.min » dans le blog Delicious Envoyer le billet « Optimisation en JavaScript : Fonctions Math.floor et Math.min » dans le blog MySpace Envoyer le billet « Optimisation en JavaScript : Fonctions Math.floor et Math.min » dans le blog Yahoo

Commentaires

  1. Avatar de kolodz
    • |
    • permalink
    Tu as utilisé quel outils pour faire ton test ?
    Les images sont directement des screenshoot ?

    Cordialement,
    Patrick Kolodziejczyk.
  2. Avatar de yahiko
    • |
    • permalink
    Je suis passé par le site www.jsperf.com.
    L'interface est assez simple et permet à quiconque de rédiger des tests de performance.