Construtor de benchmarks
Construtor de benchmarks JS online gratuito, sem necessidade de instalação. Compara a velocidade de execução do código JavaScript.
Sobre o Benchmark Builder
Uma ferramenta de micro-benchmark JavaScript cara a cara: cole dois corpos de função (Snippet A e Snippet B), defina uma contagem de iterações e a ferramenta executa cada um por meio de 100 chamadas de aquecimento seguidas pelo número configurado de chamadas medidas, relatando então o tempo total, operações por segundo e qual snippet foi mais rápido e por qual proporção.
Como usar
1. Defina Iterações (padrão 10000) no cartão superior. 2. No cartão Snippet A, digite um rótulo opcional (padrão "A") e o corpo da função a ser avaliado (ex. `return Math.random()`). 3. Faça o mesmo para o Snippet B (ex. `return crypto.getRandomValues(new Uint32Array(1))[0]`). 4. Clique em Executar — o botão fica desativado até que ambos os corpos dos snippets estejam preenchidos. 5. Leia o cartão de resultado: cada snippet mostra o tempo total em milissegundos e operações/segundo, além de uma linha de rodapé indicando o snippet mais rápido e a proporção de velocidade. Se um snippet lançar uma exceção, o erro é mostrado em vermelho.
Modelo de execução e métricas
Cada snippet é encapsulado com `new Function(code)` e invocado como uma função sem argumentos, portanto deve ser um corpo de função válido (use `return ...` para trabalhar; instruções de nível superior são permitidas). - Aquecimento: 100 chamadas incondicionais antes da medição, para permitir que o motor JS otimize. - Medição: `performance.now()` é amostrado antes e depois de executar o snippet `iterations` vezes em um loop fechado. - Operações por segundo: calculadas como `iterations / (timeMs / 1000)`, arredondadas. - Proporção: `max(timeA, timeB) / min(timeA, timeB)`, exibida com 2 casas decimais; o snippet com menor tempo é relatado como mais rápido. Observe que este é um micro-benchmark de melhor esforço no navegador, não um conjunto estatisticamente rigoroso: os resultados variam conforme a carga da máquina, o motor do navegador, as pausas de GC e a eliminação de código morto.
▶Por que meus resultados são diferentes toda vez que clico em Executar?
▶Os snippets podem acessar variáveis, imports ou async/await?
▶O que acontece se um snippet lançar uma exceção?
▶Meus dados são enviados a um servidor?
Se este ferramenta foi útil para você, pense em me dar um café.
Compre um café para mim.