8 pontos por xguru 2025-12-11 | 1 comentários | Compartilhar no WhatsApp
  • 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.hrtime ou performance.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 task ou de bench, com controle do número máximo de execuções simultâneas pela opção threshold
  • Estrutura baseada em eventos e extensível: as classes Bench e Task herdam de EventTarget, permitindo registrar listeners para eventos como cycle e abort
  • Detecção automática de funções assíncronas: verifica AsyncFunction ou retorno de Promise para ativar automaticamente o modo async
  • Visualização e conversão de resultados: o método bench.table() converte para o formato de saída do console.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, bunNanoseconds e auto
    • Também é possível implementar uma interface TimestampProvider personalizada
  • 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

 
shakespeares 2025-12-11

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.