Qu'est-ce qu'un benchmark JavaScript ?

Un benchmark JavaScript mesure la vitesse d'exécution d'un morceau de code en l'exécutant à plusieurs reprises sur une période fixe et en comptant le nombre d'opérations par seconde qu'il peut accomplir. Le benchmarking est couramment utilisé pour comparer deux approches au même problème — par exemple, vérifier si Array.includes() est plus rapide que Array.indexOf() pour un cas d'usage donné. Les résultats peuvent varier considérablement entre les navigateurs et les appareils, car chaque moteur JavaScript (V8, SpiderMonkey, JavaScriptCore) possède ses propres optimisations et stratégies de compilation JIT.

Description de l'outil

Cet outil vous permet de coller deux extraits de code JavaScript et d'exécuter une comparaison de performance directe dans votre navigateur. Chaque extrait est chronométré sur une durée configurable, et les résultats affichent les opérations par seconde et le temps moyen par opération pour les deux fonctions. Une barre de progression met en évidence la différence de performance relative, ce qui facilite la visualisation de l'approche la plus rapide en un coup d'œil.

Fonctionnalités

  • Exécute les deux extraits dans un Web Worker afin que les benchmarks ne bloquent jamais ou ne figent l'onglet du navigateur
  • Durée de benchmark configurable pour équilibrer la précision et le temps d'attente
  • Comparaison ops/sec côte à côte avec une barre visuelle et une différence en pourcentage

Fonctionnement

Chaque extrait est enveloppé dans une boucle qui s'exécute pendant la durée spécifiée (2 secondes par défaut) après une phase de préchauffage de 100 ms pour permettre au compilateur JIT d'optimiser le code. Les opérations sont comptabilisées pendant la fenêtre chronométrée, et ops/sec est calculé comme count / elapsed_ms * 1000. L'intégralité du benchmark s'exécute dans un Web Worker, il ne peut donc pas accéder au DOM, mais il a accès aux globals JavaScript standard comme Math, Date, performance, les tableaux et les objets.

Conseils

  • Gardez les extraits autonomes ; évitez les effets secondaires qui s'accumulent entre les itérations
  • Utilisez une durée plus longue (3–5 secondes) pour des résultats plus stables sur les opérations rapides
  • Les résultats reflètent votre navigateur et votre machine spécifiques — benchmarkez toujours dans l'environnement cible