Tinybench - biblioteca leve de benchmarking para JavaScript
(github.com/tinylibs)- Ferramenta de benchmarking ultraleve, com menos de 10 KB, desenvolvida para medir com precisão o desempenho de código
- Funciona com base em Web API e oferece medição de tempo precisa usando
process.hrtimeouperformance.now - Pode ser executada em diversos ambientes de runtime JavaScript, como Node.js, Deno e Bun
- Oferece análise estatística: suporte ao cálculo de latência e throughput com média, desvio padrão, margem de erro, variância, percentis etc.
- Modo de execução com concorrência: execução paralela possível por unidade de
taskou debench, com controle do número máximo de execuções simultâneas pela opçãothreshold - Estrutura baseada em eventos e extensível: as classes
BencheTaskherdam de EventTarget, permitindo registrar listeners para eventos comocycleeabort - Detecção automática de funções assíncronas: verifica
AsyncFunctionou retorno dePromisepara ativar automaticamente o modo async - Visualização e conversão de resultados: o método
bench.table()converte para o formato de saída doconsole.table(), e funções Converter personalizadas permitem customizar o formato de saída - Com a configuração
retainSamples, mantém os dados brutos das amostras, podendo ser usados em análises personalizadas, visualização de gráficos e exportação de resultados - Permite escolher um provedor de timestamp preciso
- O padrão é
performance.now() - Suporte a opções otimizadas por runtime, como
hrtimeNow,bunNanosecondseauto - Também é possível implementar uma interface TimestampProvider personalizada
- O padrão é
- Suporte a interrupção baseada em AbortSignal
- É possível interromper a execução (abort) do benchmark inteiro ou de tarefas individuais
- Ao interromper, um evento
aborté disparado e o sinalizador de estado (task.result.aborted) é definido
- Estrutura de pacote único, sem dependências externas, garantindo inicialização rápida e boa velocidade de execução
- Em comparação com Benchmark.js, mitata, tatami-ng e Bema, destaca-se por ser menor, mais simples e mais amigável a Web APIs
1 comentários
Agora fico pensando se isso ainda é necessário. A IA já escreve muito bem scripts para medir performance de acordo com aquele momento e contexto.