T-Rex: Javascript - schlecht programmiert -> Speicherlecks finden

Hallöchen Popöchen,

nach langer Zeit mal wieder eine Frage :). Ich hab da eine Seite mit viel Javascript. Das macht allerhand. Jetzt habe ich anscheinend Mist gebaut, denn ich kann, so fern ich auf dieser Seite viel interagiere, zusehen wie mein Arbeitsspeicher sich langsam füllt (hab dafür eine Anzeige in meiner Taskleiste). Anscheinend werden da Objekte, Arrays, Funktionen oder sonst was erzeugt, die nicht wieder freigegeben werden. Da es sehr viel Code ist, schaffe ich nicht mehr allein durch Ansicht des Codes dieses Speicherleck zu finden. Im Chrome Inspektor finde ich irgendwie auch keine passende Funktion oder bin einfach nur Blind.

Kann ich irgendwie zur Laufzeit sehen welche Objekte, Arrays, Variablen, Funktionen wie viel Speicherplatz belegen?

Grüßle Speicherplatzverschwender T-Rex

  1. Ich hab mal eine Tabelle gemacht. Vielleicht beruhigt Dich das:

    Firefox:

    |Zustand|Speicherverbrauch|Differenz| |Desktop mit Terminal ohne Firefox|462MB|+-0B| |Firefox mit leerer Startseite|779MB|+317MB| |Firefox mit kleiner Webseite|724MB|-55MB| |Firefox mit diesem Forum|763MB|+19MB| |Desktop mit Terminal ohne Firefox|461MB|-302MB|

    Chromium:

    |Zustand|Speicherverbrauch|Differenz| |Desktop mit Terminal ohne Chromium|461MB|+-0B| |Chromium mit Google-Suche|807MB|+346MB| |Chromium mit kleiner Webseite|803MB|-4MB| |Chromium mit diesem Forum|833MB|+30MB|

    System: Ubuntu 18.04 mit XFCE4: Der Speicherverbrauch von "Desktop mit Terminal ohne Firefox" erklärt sich auch dadurch, dass etliche Dienste (bis hin zu MariaDB und Apache) laufen und das ich System schon eine Weile nutze. Unmittelbar nach der Anmeldung stellt es sich schlanker dar.

    Das Terminal wird benötigt damit ich free -h auführen kann.

    Frage des Tages: Was macht der Firefox eigentlich wenn ich die leere Startseite offen habe? Den "halben" Cache in den Arbeitsspeicher einlesen?

  2. Kann ich irgendwie zur Laufzeit sehen welche Objekte, Arrays, Variablen, Funktionen wie viel Speicherplatz belegen?

    Nicht ganz genau. Der Firefox zeigt in den Entwicklertools den Speicher. Einfach auf Speicher, dann auf "Allokations-Aufrufliste" aufzeichnen klicken. Dann siehst Du zumindest, was wofür "draufgeht".