Benchmark de JavaScript
Compara y evalúa el rendimiento de dos funciones JavaScript lado a lado en un web worker.
Entrada
Salida
Leerme
¿Qué es un benchmark de JavaScript?
Un benchmark de JavaScript mide la velocidad de ejecución de un fragmento de código ejecutándolo repetidamente durante un período de tiempo fijo y contando cuántas operaciones por segundo puede completar. El benchmarking se utiliza comúnmente para comparar dos enfoques del mismo problema — por ejemplo, verificar si Array.includes() es más rápido que Array.indexOf() para un caso de uso específico. Los resultados pueden variar significativamente entre navegadores y dispositivos, ya que cada motor de JavaScript (V8, SpiderMonkey, JavaScriptCore) tiene sus propias optimizaciones y estrategias de compilación JIT.
Descripción de la herramienta
Esta herramienta te permite pegar dos fragmentos de código JavaScript y ejecutar una comparación de rendimiento directa en tu navegador. Cada fragmento se cronometra durante una duración configurable, y los resultados muestran operaciones por segundo y tiempo promedio por operación para ambas funciones. Una barra de progreso destaca la diferencia de rendimiento relativa, facilitando ver de un vistazo qué enfoque es más rápido.
Características
- Ejecuta ambos fragmentos en un Web Worker para que los benchmarks nunca bloqueen ni congelen la pestaña del navegador
- Duración de benchmark configurable para equilibrar la precisión con el tiempo de espera
- Comparación lado a lado de ops/seg con una barra visual y diferencia porcentual
Cómo funciona
Cada fragmento se envuelve en un bucle que se ejecuta durante la duración especificada (2 segundos por defecto) después de una fase de calentamiento de 100 ms para permitir que el compilador JIT optimice el código. Las operaciones se cuentan durante la ventana cronometrada, y ops/seg se calcula como count / elapsed_ms * 1000. Todo el benchmark se ejecuta dentro de un Web Worker, por lo que no puede acceder al DOM, pero tiene acceso a globales estándar de JavaScript como Math, Date, performance, arrays y objetos.
Consejos
- Mantén los fragmentos autónomos; evita efectos secundarios que se acumulen entre iteraciones
- Usa una duración más larga (3–5 segundos) para resultados más estables en operaciones rápidas
- Los resultados reflejan tu navegador y máquina específicos — siempre realiza benchmarks en el entorno objetivo