Fréquence en Hertz des fonctions

JavaScriptJavaScriptBeginner
Pratiquer maintenant

This tutorial is from open-source community. Access the source code

💡 Ce tutoriel est traduit par l'IA à partir de la version anglaise. Pour voir la version originale, vous pouvez cliquer ici

Introduction

Dans ce laboratoire, nous allons plonger dans la mesure des performances des fonctions JavaScript en utilisant le concept de fréquence en Hertz. Nous apprendrons à utiliser la méthode performance.now() pour calculer le temps écoulé lors de l'exécution d'une fonction et à déterminer le nombre de cycles par seconde. Par des exemples pratiques et des exercices, nous explorerons les différences de performances entre différentes implémentations de la même fonction.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL javascript(("JavaScript")) -.-> javascript/BasicConceptsGroup(["Basic Concepts"]) javascript(("JavaScript")) -.-> javascript/AdvancedConceptsGroup(["Advanced Concepts"]) javascript/BasicConceptsGroup -.-> javascript/variables("Variables") javascript/BasicConceptsGroup -.-> javascript/data_types("Data Types") javascript/BasicConceptsGroup -.-> javascript/arith_ops("Arithmetic Operators") javascript/BasicConceptsGroup -.-> javascript/comp_ops("Comparison Operators") javascript/BasicConceptsGroup -.-> javascript/loops("Loops") javascript/BasicConceptsGroup -.-> javascript/array_methods("Array Methods") javascript/AdvancedConceptsGroup -.-> javascript/higher_funcs("Higher-Order Functions") subgraph Lab Skills javascript/variables -.-> lab-28385{{"Fréquence en Hertz des fonctions"}} javascript/data_types -.-> lab-28385{{"Fréquence en Hertz des fonctions"}} javascript/arith_ops -.-> lab-28385{{"Fréquence en Hertz des fonctions"}} javascript/comp_ops -.-> lab-28385{{"Fréquence en Hertz des fonctions"}} javascript/loops -.-> lab-28385{{"Fréquence en Hertz des fonctions"}} javascript/array_methods -.-> lab-28385{{"Fréquence en Hertz des fonctions"}} javascript/higher_funcs -.-> lab-28385{{"Fréquence en Hertz des fonctions"}} end

Calcul de la fréquence d'une fonction

Pour mesurer la fréquence d'exécution d'une fonction par seconde (hz/hertz), utilisez la fonction hz. Vous pouvez le faire en suivant ces étapes :

  1. Ouvrez le Terminal/SSH et tapez node pour commencer à pratiquer la programmation.
  2. Utilisez performance.now() pour obtenir la différence en millisecondes avant et après la boucle d'itération pour calculer le temps écoulé lors de l'exécution de la fonction iterations fois.
  3. Convertissez les millisecondes en secondes et divisez-la par le temps écoulé pour retourner le nombre de cycles par seconde.
  4. Si vous voulez utiliser la valeur par défaut de 100 itérations, omettez le second argument, iterations.
const hz = (fn, iterations = 100) => {
  const before = performance.now();
  for (let i = 0; i < iterations; i++) fn();
  return (1000 * iterations) / (performance.now() - before);
};

Voici un exemple d'utilisation de la fonction hz pour comparer les performances de deux fonctions qui calculent la somme d'un tableau de 10 000 nombres :

const numbers = Array(10000)
  .fill()
  .map((_, i) => i);

const sumReduce = () => numbers.reduce((acc, n) => acc + n, 0);
const sumForLoop = () => {
  let sum = 0;
  for (let i = 0; i < numbers.length; i++) sum += numbers[i];
  return sum;
};

Math.round(hz(sumReduce)); // 572
Math.round(hz(sumForLoop)); // 4784

Dans cet exemple, sumReduce est plus rapide que sumForLoop car elle a une fréquence d'exécution de fonction plus faible.

Sommaire

Félicitations ! Vous avez terminé le laboratoire sur la fréquence en Hertz des fonctions. Vous pouvez pratiquer d'autres laboratoires sur LabEx pour améliorer vos compétences.