Complejidad temporal en práctica
Clase 7 de 18 • Curso de Complejidad Algorítmica con JavaScript
Resumen
Los métodos perfomance.now()
y console.time()
se utilizan para medir el tiempo entre dos líneas de código en milisegundos. La diferencia entre ambos es que performance.now()
es más preciso.
Para explicarlo, emplearemos un algoritmo de contar números.
function contar(n){
for (let i=0; i < n; i++){
console.log(i)
}
}
Método performance.now
El método performance.now()
mide el tiempo en una determinada línea de código. Se debe incluir dos invocaciones de este método y guardarlos en variables, luego calcular la diferencia para obtener el dato del tiempo empleado del algoritmo.
const tiempoInicial = performance.now()
contar(5) // Algoritmo
const tiempoFinal = performance.now()
const duracion = tiempoFinal - tiempoInicial
console.log(duracion)
Ejecuta el método y observa los valores de duracion
. Notarás que los valores varían cada vez que ejecutas, esto es normal, por eso no hay que obsesionarse que el algoritmo duró “x” tiempo menos.
Ten en cuenta que performance.now()
pertenece al objeto global. En el caso de que no te funcione en Node.js, impórtalo de la siguiente manera:
const { performance } = require("node:perf_hooks")
Método console.time
El método console.time()
mide el tiempo en una determinada línea de código. Se necesitan dos invocaciones de este método y especificando como argumento el nombre de esta operación. La segunda invocación debes utilizar el método console.timeEnd()
.
console.time("duración")
contar(5) // Algoritmo
console.timeEnd("duración")
Ejecuta el método y observa los valores de duración
. Este método funciona en cualquier contexto de ejecución.
Complejidad del algoritmo
Para visualizar una gráfica de los recursos que requiere en función de los elementos de entrada, usa esta herramienta de Visualización de Complejidad Temporal.
La gráfica indica que a medida que el algoritmo procesa más elementos, necesita mayor tiempo de ejecución.

Contribución creada por Andrés Guano (Platzi Contributor).