Frecuencia Hertz de Funciones

JavaScriptJavaScriptBeginner
Practicar Ahora

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

💡 Este tutorial está traducido por IA desde la versión en inglés. Para ver la versión original, puedes hacer clic aquí

Introducción

En este laboratorio, profundizaremos en la medición del rendimiento de las funciones de JavaScript utilizando el concepto de frecuencia en Hertz. Aprenderemos cómo utilizar el método performance.now() para calcular el tiempo transcurrido al ejecutar una función y cómo determinar el número de ciclos por segundo. A través de ejemplos prácticos y ejercicios, exploraremos las diferencias de rendimiento entre diferentes implementaciones de la misma función.


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{{"Frecuencia Hertz de Funciones"}} javascript/data_types -.-> lab-28385{{"Frecuencia Hertz de Funciones"}} javascript/arith_ops -.-> lab-28385{{"Frecuencia Hertz de Funciones"}} javascript/comp_ops -.-> lab-28385{{"Frecuencia Hertz de Funciones"}} javascript/loops -.-> lab-28385{{"Frecuencia Hertz de Funciones"}} javascript/array_methods -.-> lab-28385{{"Frecuencia Hertz de Funciones"}} javascript/higher_funcs -.-> lab-28385{{"Frecuencia Hertz de Funciones"}} end

Cálculo de la frecuencia de una función

Para medir la frecuencia de ejecución de una función por segundo (hz/hertz), utiliza la función hz. Puedes hacerlo siguiendo estos pasos:

  1. Abre la Terminal/SSH y escribe node para comenzar a practicar la codificación.
  2. Utiliza performance.now() para obtener la diferencia en milisegundos antes y después del bucle de iteración para calcular el tiempo transcurrido al ejecutar la función iteraciones veces.
  3. Convierte los milisegundos a segundos y divídelo por el tiempo transcurrido para devolver el número de ciclos por segundo.
  4. Si quieres utilizar el valor predeterminado de 100 iteraciones, omite el segundo argumento, iteraciones.
const hz = (fn, iterations = 100) => {
  const before = performance.now();
  for (let i = 0; i < iterations; i++) fn();
  return (1000 * iterations) / (performance.now() - before);
};

A continuación, se muestra un ejemplo de uso de la función hz para comparar el rendimiento de dos funciones que calculan la suma de una matriz de 10.000 números:

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

En este ejemplo, sumReduce es más rápido que sumForLoop porque tiene una frecuencia de ejecución de función más baja.

Resumen

¡Felicidades! Has completado el laboratorio de Frecuencia Hertz de Funciones. Puedes practicar más laboratorios en LabEx para mejorar tus habilidades.