Michael_K: Garbage Collector verbessern/schneller machen

Beitrag lesen

Hallo,

kennt jemand eine Seite, in der anschaulich erklaert wird, welche Dinge helfen, dass Garbage Collector "schneller" zuschlagen kann?

Das Schoene an JS ist, dass der GC ziemlich gut funktioniert und man sich idR kaum Gedanken machen muss. Trotzdem habe ich gerade eine Situation, in der der GC relativ lange benoetigt, um Speicher wieder freizugeben. Konkret: in einem Browser wird eine Berechnung durchgefuehrt, die relativ viele Daten nacheinander benoetigt. Schaue ich mir das Ganze im Chrome mit den Entwicklungstools an, dann sehe ich, dass der Scheicher auf bis zu 500 bis 700 MB hochgeht, nach ca. 5 bis 15 Sekunden dann aber der Speicher wieder auf 45MB sinkt (dass fuer mich akzeptable ist .. gemessen an den Daten, die im BrwoserTab dann dargestellt bzw. vorgehalten werden).

Ich wuerde nun gerne wissen, ob ich den GC schneller machen kann, sodass nicht 700MB anfallen bis dass es keine 15 Sekunden bedarf, bis der GC zuschlaegt.

Zudem eine Frage, auf einer Seite wird dieser Code als unguenstige fuer GC bezeichnet bzw. als unnoetige Objekterstellung. Kann mir das jemand erklaeren bzw. wie sollte man es denn besser machen:

// Creating unnecessary objects in a loop
function processArray(array) {
  const newArray = [];
  for (let i = 0; i < array.length; i++) {
      newArray.push(array[i] * 2);
    }
  return newArray;
}

Quelle