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

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

*