Ich habe die folgenden 2 (riesigen!) Speicherverluste in Chrome festgestellt:
Beachten Sie, dass es im Internet Explorer KEINE Speicherverluste gibt!
Einige Hintergrundinformationen: Ich arbeite an einem Projekt, bei dem eine externe Kamera einen Live-Feed von Bildern bereitstellt (sagen wir 100 Bilder pro Sekunde).
Die wichtigsten 3 Funktionen des Projekts sind:
Sie können den folgenden eigenständigen Code herunterladen (einfach als "leak.html" speichern und ausführen) und selbst sehen:
%Vor%Dieser Beispielcode nimmt ein statisches Bild (eines Stuhls) und ändert es zufällig in jedem Bild (nur um meinen echten Kamera-Feed zu simulieren).
Bei den ersten 1000 Bildern wird das Bild angezeigt, und die letzten 10 Bilder werden in einem zyklischen Array gespeichert. Von nun an werden nur die 10 zuletzt aufgenommenen Bilder (in einer Schleife) angezeigt.
(Offensichtlich ist mein wirkliches Projekt viel komplizierter, ich habe es nur vereinfacht, um das Problem zu veranschaulichen).
Die Frage ist - schlagen Sie bitte einen alternativen Weg (vorzugsweise - basierend auf dem mitgelieferten Quellcode) vor, um genau die gleiche Funktionalität zu erreichen, ohne einen Speicherverlust in Chrome zu verursachen.
PS 1:
In Chrom habe ich die folgenden 2 Fehler gefunden, die NICHT wirklich behoben wurden (Beweise - mein Code ist noch immer undicht ...):
PS 2:
Ich bin mir voll und ganz der bestehenden, ähnlichen Fragen im Stackoverflow bewusst und habe viele Versuche unternommen, aber keiner von ihnen hat mir geholfen, mein Problem zu lösen:
Einige Versuche, die ich gemacht habe, zum Beispiel:
* UPDATE 29 / Jan *
Ich habe die folgenden Zeilen ersetzt:
%Vor%Mit:
%Vor%und das Leck ist das gleiche.
= & gt; Also ich bin unten auf "nur" 1 Fehler, der eine Abhilfe (an 2 Stellen) benötigt: Leck, wenn Sie den src eines Bildes redigieren.
Ich hatte das gleiche Problem. Die einzige Problemumgehung, die ich fand, war, die Anzahl der neuen Image () zu reduzieren, die verwendet werden sollten (idealerweise eine):
%Vor%Beachten Sie, dass Bilder in Serie geladen werden. Wenn Sie 2 Bilder parallel laden möchten, müssen Sie 2 ImageLoader instanziieren.
Tags und Links javascript memory-leaks jquery image google-chrome