Benchmark JavaScript
Compare e avalie duas funções JavaScript lado a lado em um web worker.
Entrada
Saída
Leia-me
O que é um benchmark de JavaScript?
Um benchmark de JavaScript mede a velocidade de execução de um trecho de código executando-o repetidamente durante um período fixo e contando quantas operações por segundo ele consegue completar. Benchmarking é comumente usado para comparar duas abordagens para o mesmo problema — por exemplo, verificar se Array.includes() é mais rápido que Array.indexOf() para um caso de uso específico. Os resultados podem variar significativamente entre navegadores e dispositivos, já que cada mecanismo JavaScript (V8, SpiderMonkey, JavaScriptCore) possui suas próprias otimizações e estratégias de compilação JIT.
Descrição da ferramenta
Esta ferramenta permite que você cole dois trechos de código JavaScript e execute uma comparação de desempenho frente a frente diretamente no seu navegador. Cada trecho é cronometrado durante uma duração configurável, e os resultados mostram operações por segundo e tempo médio por operação para ambas as funções. Uma barra de progresso destaca a diferença de desempenho relativo, facilitando ver qual abordagem é mais rápida em um relance.
Recursos
- Executa ambos os trechos em um Web Worker para que os benchmarks nunca bloqueiem ou congelem a aba do navegador
- Duração de benchmark configurável para equilibrar precisão contra tempo de espera
- Comparação lado a lado de ops/seg com uma barra visual e diferença percentual
Como funciona
Cada trecho é envolvido em um loop que executa pela duração especificada (padrão 2 segundos) após uma fase de aquecimento de 100 ms para permitir que o compilador JIT otimize o código. As operações são contadas durante a janela cronometrada, e ops/seg é calculado como count / elapsed_ms * 1000. Todo o benchmark é executado dentro de um Web Worker para que não possa acessar o DOM, mas tem acesso a globais JavaScript padrão como Math, Date, performance, arrays e objetos.
Dicas
- Mantenha os trechos independentes; evite efeitos colaterais que se acumulem entre iterações
- Use uma duração mais longa (3–5 segundos) para resultados mais estáveis em operações rápidas
- Os resultados refletem seu navegador e máquina específicos — sempre faça benchmark no ambiente de destino