Jestem newbie in node.js.node.js splice zbyt wolne dla więcej niż 70000 pozycji
Próbowałem wstawić 70000 elementów do tablicy, a następnie usunąć wszystkie z nich:
var Stopwatch = require("node-stopwatch").Stopwatch;
var stopwatch = Stopwatch.create();
var a = []
stopwatch.start();
for (var i = 1 ; i < 70000 ; i++){
a.push((parseInt(Math.random() * 10000)) + "test");
}
for (var i = 1 ; i < 70000 ; i++){
a.splice(0,1);
}
stopwatch.stop();
console.log("End: " + stopwatch.elapsedMilliseconds + " : " + a.length);
To działa dobrze i wyjście jest:
PS C:\Users\Documents\VSCode> node test.js
End: 51 : 0
Ale kiedy Zwiększ liczbę pozycji do 72000, skończy się to za dużo czasu:
var Stopwatch = require("node-stopwatch").Stopwatch;
var stopwatch = Stopwatch.create();
var a = []
stopwatch.start();
for (var i = 1 ; i < 72000 ; i++){
a.push((parseInt(Math.random() * 10000)) + "test");
}
for (var i = 1 ; i < 72000 ; i++){
a.splice(0,1);
}
stopwatch.stop();
console.log("End: " + stopwatch.elapsedMilliseconds + " : " + a.length);
a wyjście jest:
End: 9554 : 0
dlaczego występuje? tylko 2000 artykułów dodanych więcej, ale zajmuje to zbyt dużo czasu.
wersjanode.js jest: v6.11.3
Czy wiesz, czy eksplozja czasu ma miejsce w populacji lub zniszczeniu macierzy, czy też w obu? – apsillers
aparaty do robienia zdjęć w destrukcji "a.splice (0,1); " –
Po prostu badałem/bawiłem się tym - dla mnie górny limit to 71109 - po tym jest naprawdę wolny. 71110 na przykład zajmuje 12476 ms! 71109 is 64ms – Alex