Tinybench - biblioteca ligera de benchmarking para JavaScript
(github.com/tinylibs)- Herramienta de benchmarking ultraligera de menos de 10 KB desarrollada para medir con precisión el rendimiento del código
- Funciona sobre Web API y ofrece medición precisa del tiempo usando
process.hrtimeoperformance.now - Puede ejecutarse en diversos entornos de ejecución de JavaScript como Node.js, Deno y Bun
- Ofrece análisis basado en estadísticas: admite el cálculo de latencia y throughput como promedio, desviación estándar, margen de error, varianza y percentiles
- Modo de ejecución concurrente: permite ejecución en paralelo por unidad de
tasko debench, con la opciónthresholdpara controlar la cantidad máxima de ejecuciones simultáneas - Estructura basada en eventos y extensible: las clases
BenchyTaskheredan de EventTarget, y permiten registrar listeners para eventos comocycleyabort - Detección automática de funciones asíncronas: revisa si es
AsyncFunctiono si devuelve unPromisepara activar automáticamente el modo async - Visualización y transformación de resultados: el método
bench.table()convierte al formato de salida deconsole.table(), y permite personalizar el formato de salida con funciones Converter definidas por el usuario - Con la configuración
retainSamples, conserva los datos de muestra en bruto para usarlos en análisis personalizados, visualización de gráficos y exportación de resultados - Permite elegir un proveedor preciso de marcas de tiempo (timestamp provider)
- El valor predeterminado es
performance.now() - Incluye opciones optimizadas según el runtime, como
hrtimeNow,bunNanosecondsyauto - Se puede implementar una interfaz personalizada de TimestampProvider
- El valor predeterminado es
- Compatible con control de interrupción basado en AbortSignal
- Se puede interrumpir (abort) toda la ejecución del benchmark o tareas individuales
- Al interrumpir, se dispara el evento
aborty se establece la bandera de estado (task.result.aborted)
- Su estructura de paquete único, sin dependencias externas, garantiza inicialización rápida y buena velocidad de ejecución
- Frente a Benchmark.js, mitata, tatami-ng y Bema, destaca por ser más pequeño, más simple y más amigable con Web API
1 comentarios
Ahora hasta me pregunto si hace falta algo así. La IA arma muy bien scripts para medir el rendimiento justo de acuerdo con el momento y la situación...