Qualche tempo fa ho realizzato un semplice script in Javascript che ha verificato quanto tempo ci vuole per aggiungere elementi agli array. Ho usato 3 metodi diversi: array.push()
, array[array.length]
e array[x]
dove x
è il contatore nel ciclo for.
Questi risultati sono stati memorizzati e disegnati su un semplice grafico utilizzando la tela. Lo script potrebbe fondamentalmente funzionare per sempre, prendendo i tempi medi per ogni ciclo.
Dopo alcune ore ho iniziato a notare qualcosa di strano nel grafico. il metodo array.push()
ha avuto un picco piuttosto "casuale" nel tempo impiegato per aggiungere tutti gli elementi. Di per sé non è troppo strano, ma ciò che è strano è che dopo aver aggiunto ancora più elementi con push
, il tempo totale è sceso di nuovo.
Quando il tempo aumenta, siamo a circa 96.000 elementi . Quando il tempo diminuisce, colpiamo 107.000 elementi . Il tempo totale supera nuovamente lo spike dopo circa 183.000 elementi . Gli altri metodi hanno anche piccoli picchi in alcuni punti, ma non grandi come il push
spike.
C'è uno screenshot di quello che sembrava dopo 364 test.
Epercolorochevoglionovedereilcodiceoeseguirlodasoli:
Perché succede? Cosa potrebbe causare l'improvviso aumento e diminuzione nel tempo?