Che cos'è un benchmark JavaScript?

Un benchmark JavaScript misura la velocità di esecuzione di un pezzo di codice eseguendolo ripetutamente per un periodo di tempo fisso e contando quante operazioni al secondo può completare. Il benchmarking è comunemente utilizzato per confrontare due approcci allo stesso problema — ad esempio, verificare se Array.includes() è più veloce di Array.indexOf() per un caso d'uso specifico. I risultati possono variare significativamente tra browser e dispositivi, poiché ogni motore JavaScript (V8, SpiderMonkey, JavaScriptCore) ha le proprie ottimizzazioni e strategie di compilazione JIT.

Descrizione dello strumento

Questo strumento ti consente di incollare due snippet di codice JavaScript ed eseguire un confronto delle prestazioni diretto nel tuo browser. Ogni snippet viene cronometrato per una durata configurabile, e i risultati mostrano operazioni al secondo e tempo medio per operazione per entrambe le funzioni. Una barra di avanzamento evidenzia la differenza di prestazioni relativa, rendendo facile vedere quale approccio è più veloce a prima vista.

Funzionalità

  • Esegue entrambi gli snippet in un Web Worker in modo che i benchmark non blocchino mai o congelino la scheda del browser
  • Durata del benchmark configurabile per bilanciare l'accuratezza rispetto al tempo di attesa
  • Confronto ops/sec affiancato con una barra visiva e differenza percentuale

Come funziona

Ogni snippet è avvolto in un ciclo che viene eseguito per la durata specificata (2 secondi per impostazione predefinita) dopo una fase di riscaldamento di 100 ms per consentire al compilatore JIT di ottimizzare il codice. Le operazioni vengono conteggiate durante la finestra cronometrata, e ops/sec viene calcolato come count / elapsed_ms * 1000. L'intero benchmark viene eseguito all'interno di un Web Worker, quindi non può accedere al DOM, ma ha accesso ai globali JavaScript standard come Math, Date, performance, array e oggetti.

Suggerimenti

  • Mantieni gli snippet autonomi; evita effetti collaterali che si accumulano tra le iterazioni
  • Utilizza una durata più lunga (3–5 secondi) per risultati più stabili su operazioni veloci
  • I risultati riflettono il tuo browser e la tua macchina specifici — esegui sempre il benchmark nell'ambiente di destinazione