Performance JavaScript

Ci-dessous quelques tests de performance en JavaScript afin de voir quelles pratiques sont les plus rapides. A noter que les différences d’exécution sont parfois quasi-imperceptibles, mais peuvent avoir une certaine incidence si vous devez répéter une opération de très nombreuses fois.

1) Il est plus rapide d’utiliser === quand on compare un boolean ou un number avec “”. En effet la comparaison avec null, 0, true, false ou un string se fait avec une conversion implicite (le test sur jspref.com) :

var test = true;
if (myvar === true) {} // plus rapide

2) Pour convertir une string en chiffre il est plus rapide d’utiliser 1*string (test sur sperf.com) :

var test="2";
console.log(1*test + 3); // plus rapide
console.log(parseInt(test) + 3); // plus lent

3) Assigner la valeur à un tableau directement plutôt qu’utiliser Array.push (test sur jsperf.com) :

// plus lent
for (i = 0; i < len; i++) itemsCopy.push(items[i])

// plus rapide
for (i = 0; i < len; i++) itemsCopy[i] = items[i]

4) Utiliser String.indexOf lorsque vous voulez savoir si une sous-chaine appartient à une plus grande chaine (test sur jsperf.com) :

if ("this is a test perf".indexOf("perf") > -1) {} // plus rapide

5) Traiter un tableau par la fin (test sur jsperf.com) :

for (var i=arr.length; i--;) {} // plus rapide

for (var i=0,len=arr.length; i<len; i++) {} // légèrement plus lent

6) Avec jQuery il est beaucoup plus rapide d’utiliser .find() que d’insérer le sous sélecteur dans le sélecteur principal (test sur jsperf.com) :

$('#mynode').find('div'); // plus rapide
$('#mynode div'); // plus lent

Leave a Reply

Your email address will not be published. Required fields are marked *

*