node.js에 초보자입니다.node.js splice가 70000 개 항목에 너무 느림
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);
그것은 잘 작동 출력은 다음과 같습니다 :
PS C:\Users\Documents\VSCode> node test.js
End: 51 : 0
그러나 때 내가
는 내가 배열에 70000 개 항목을 삽입하고 그들 모두를 삭제하려고했습니다 항목 수를 72000까지 늘리면 종료하는 데 너무 많은 시간이 걸립니다.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);
그리고 출력은 다음과 같습니다
End: 9554 : 0
는 왜 발생? 2000 개 항목 만 더 추가되었지만 너무 많은 시간이 걸립니다.
Node.js를 버전은 다음과 같습니다
시간이 폭발하는지 여부는 배열 채우기 또는 파괴 또는 두 가지 모두에서 발생합니까? – apsillers
파괴중인 @apillers 'a.splice (0,1); ' –
그냥 이것으로 조사하고 놀았습니다 - 저에게 상한선은 71109입니다 -이 후에는 정말 느립니다. 예를 들어, 71110은 12476ms를 필요로합니다! 71109 is 64ms – Alex