Lesen Sie bereits Question, aber kam nicht zu einer verständlichen Antwort.Gibt es ein Item-Limit für große Arrays in Javascript
Ich habe ein Array new Array(105119296)
mit einer vordefinierten Größe. Dann, nachdem das Array definiert wurde, startete ich eine Schleife, um jeden Index mit einem Wert zu füllen. Dieser Prozess läuft normalerweise in einem Webworker, stürzt aber dort genauso ab wie im Browser.
Nach 11184811 Iterationen in Chrome Mac 50.0.2661.102 (64-bit)
stürzt die Ausführung ab.
Das folgende Skript reproduziert die Situation.
var len = 105119296;
var arr = new Array(len);
for(var i=0;i<len;i++){
var data = 0;// Math.round(Math.random()*10);
if(i>11184810){
console.log(i + '->' + data);
// At 11184811 Chrome dev tool crashes
}
arr[i] = data;
}
console.log('done');
Meine Frage ist im Allgemeinen:
Gibt es eine Grenze für die Größe eines Array in Javascript halten kann? Und wenn nicht, warum läuft so etwas in einem Webworker nicht richtig, was meinem Verständnis für schwere Aufgaben entspricht, die die Browseransicht blockieren würden.
In Chrome maximale Array-Größe ist etwas zwischen 1e9 und 1e10. –
Und Absturz bezieht sich nicht auf die Größe des Arrays, sondern auf die Anzahl der Iterationen. Es würde auch mit einer normalen Schleife abstürzen. –
Warum durchlaufen Sie 100 Millionen Elemente in JS? Verwenden Sie wirklich den besten Ansatz? –