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".