Arbeitsspeicher-Belegung drosseln

  • ich benutze ständig mehrere Firefox-Profile, die vor dem Ausschalten des PC's nicht geschlossen werden. Der PC wird einfach in den Ruhezustand versetzt. Jetzt habe ich bei 3 Profilen die Lesezeichen exportiert, die Profile gelöscht und dann jeweils die Lesezeichen in die neu angelegte Profile importiert. In keinem der drei neuen Profile sind nach der Erstellung irgendeine Add-Ons installiert.

    Ich bin jetzt ziemlich unglücklich, dass bereits nach dem ich lediglich weniger als 15 Webseiten aus meiner Lesezeichen-Liste geöffnet habe, der Speicherverbrauch (RAM) sofort um 20-30 MB angewachsen ist. Ich habe alle o.g. 15 Webseiten nicht in separaten, sondern in einem Tab nacheinander geöffnet.

    In einem der drei neu angelegten Profil habe ich in den Firefox-Einstellungen das Anlegen der Chronik deaktiviert. Und trotzdem wächst der Speicherverbrauch von 70-75 MB nach der Erstellung des Profils bis 100 MB. Und dann stagniert der Speicherverbrauch bei ~ 100 MB, obwohl lediglich ein leeres Tab geöffnet ist.

    Bin an Infos dazu interessiert, womit ist die RAM-Belegung in so einem Szenario wie oben beschrieben zu erklären? Mein Ziel ist nämlich ein Firefox-Profil zu haben, mit dem ein flottes Arbeiten im Internet möglich ist. Wenn Firefox gleich nach der Erstellung so rapide anfängt den RAM-Verbrauch zu steigern, dann bringt eine regelmäßige Erstellung von neuen Profilen nicht wirklich was.

    Ich bin mit dem Firefox Version 55.0.3 (32-Bit) auf einem Windows 10 Home 64-Bit-System unterwegs. Der PC hat 4 GB RAM.

  • Ich bin jetzt ziemlich unglücklich, dass bereits nach dem ich lediglich weniger als 15 Webseiten aus meiner Lesezeichen-Liste geöffnet habe, der Speicherverbrauch (RAM) sofort um 20-30 MB angewachsen ist.

    In einem der drei neu angelegten Profil habe ich in den Firefox-Einstellungen das Anlegen der Chronik deaktiviert. Und trotzdem wächst der Speicherverbrauch von 70-75 MB nach der Erstellung des Profils bis 100 MB.

    Und worüber bist du jetzt unglücklich? Das ist ein extrem geringer Anstieg für 15 Webseiten. Eine einzige komplexe Webseite wie Facebook kann alleine über 100 MB beanspruchen.

    Mein Ziel ist nämlich ein Firefox-Profil zu haben, mit dem ein flottes Arbeiten im Internet möglich ist. Wenn Firefox gleich nach der Erstellung so rapide anfängt den RAM-Verbrauch zu steigern, dann bringt eine regelmäßige Erstellung von neuen Profilen nicht wirklich was.

    Hast du denn Probleme mit dem flotten Arbeiten? Hängt Firefox bei dir regelmäßig fest, was sich nur durch einen Browserneustart lösen lässt?

  • Und worüber bist du jetzt unglücklich? Das ist ein extrem geringer Anstieg für 15 Webseiten. Eine einzige komplexe Webseite wie Facebook kann alleine über 100 MB beanspruchen.


    Ich habe im Startpost geschildert, dass ich die 15 Webseiten nacheinander in einem Tab geöffnet habe. Warum wird der Speicher nicht freigegeben nach dem ich die Webseite verlassen habe?


    Hängt Firefox bei dir regelmäßig fest, was sich nur durch einen Browserneustart lösen lässt?

    Ja Firefox friert immer wieder ein. Ein Neustart passt zu meiner Arbeitsweise nicht. Für mich ist es wichtig, dass die jeweilige Browser-Instanz in der Taskleiste auf einem dieser Instanz zugewiesenen Platz positioniert ist. Deswegen warte ich meistens ab, bis der Browser genau genommen die Browser-Instanzen irgendwann wieder bedienbar werden.

  • Ich habe im Startpost geschildert, dass ich die 15 Webseiten nacheinander in einem Tab geöffnet habe. Warum wird der Speicher nicht freigegeben nach dem ich die Webseite verlassen habe?

    So funktioniert Speicher-Management nicht. Nur, weil du einen Tab schließt / durch eine andere Webseite ersetzt, wird nicht umgehend der gesamte Speicher bis auf den letzten Byte freigegeben. Browser versuchen den RAM dann freizugeben, wenn die Auslastung gering ist. Auch behalten Browser absichtlich Daten im RAM, damit man möglichst schnell wieder zurück-navigieren kann. RAM ist schließlich dafür da, genutzt zu werden.

    Und wie gesagt, du sprichst zwar von rapide in deinem Startbeitrag, aber die von dir genannten Zahlen klingen relativ gesund.


  • So funktioniert Speicher-Management nicht. Nur, weil du einen Tab schließt / durch eine andere Webseite ersetzt, wird nicht umgehend der gesamte Speicher bis auf den letzten Byte freigegeben. Browser versuchen den RAM dann freizugeben, wenn die Auslastung gering ist. Auch behalten Browser absichtlich Daten im RAM, damit man möglichst schnell wieder zurück-navigieren kann. RAM ist schließlich dafür da, genutzt zu werden.

    Und wie gesagt, du sprichst zwar von rapide in deinem Startbeitrag, aber die von dir genannten Zahlen klingen relativ gesund.

    Also perfekt wäre, wenn Firefox eine Einstellungsmöglichkeit bieten würde, mit der ich wählen kann, ob das von dir beschriebenes Caching aktiviert/ deaktiviert wird. Ich nehme an, dass nicht alle Browser so ein Caching praktizieren. Das schließe ich daraus, dass der Browser Vivaldi https://vivaldi.com/ belegt bspw. im Arbeitsspeicher 41 MB bei 5 geöffneten Tabs. Wenn ich ein neues Firefox-Profil erstelle, Firefox-Instanz starte, dann belegt Firefox sofort 90 MB und dann nach der Öffnung der gleichen Webseiten wie im Vivaldi-Browser belegt Firefox weitere 15 MB. Und gibt diesen Arbeitsspeicher nach dem Scließen der Tabs nicht wieder frei.

  • Mit einem Script kannst du dein Ram freischaufeln..
    https://github.com/ardiman/userCh…er/reducememory
    Dazu bedarf es aber einiger Vorarbeit...
    https://github.com/ardiman/userChrome.js
    Scroll ganz nach unten und lese dich ein..

  • Also perfekt wäre, wenn Firefox eine Einstellungsmöglichkeit bieten würde, mit der ich wählen kann, ob das von dir beschriebenes Caching aktiviert/ deaktiviert wird. Ich nehme an, dass nicht alle Browser so ein Caching praktizieren. Das schließe ich daraus, dass der Browser Vivaldi https://vivaldi.com/ bspw. belegt bspw. im Arbeitsspeicher 41 MB bei 5 geöffneten Tabs. Wenn ich ein neues Firefox-Profil erstelle, Firefox-Instanz starte, dann belegt Firefox sofort 90 MB und dann nach der Öffnung der gleichen Webseiten wie im Vivaldi-Browser belegt Firefox weitere 15 MB. Und gibt diesen Arbeitsspeicher nach dem Scließen der Tabs nicht wieder frei.

    Du vergleichst Äpfel mit Birnen, weil unterschiedliche Browser nun einmal unterschiedlich arbeiten. Und dass der eine Browser mit mehr RAM startet, sagt nichts über die Skalierbarkeit aus. Skalierbarkeit meint den Umgang in Abhängigkeit von der Anzahl der Tabs. Vivaldi ist ein Chromium-basierter Browser und damit ganz sicher kein RAM-Wunder. Du musst natürlich den Verbrauch aller Prozesse zusammenzählen.

    Überhaupt ist deine ganze Rechnung der Art "belegt 41 MB bei 5 geöffneten Tabs" wenig zielführend. Denn wie ich schon sagte: der RAM-Verbrauch wird maßgeblich davon beeinflusst, welche Webseiten du geöffnet hast. Und auch von den installierten Browser-Erweiterungen.

    Und doch, auch Chromium-basierte Browser besitzen ein "Zurück-Vorwärts-Caching" ("bfcache"). Der Unterschied zwischen Firefox und Chrome ist nur, dass Firefox ein paar Seiten mehr zurück geht und das ist gewolltes Verhalten von Firefox. Unter anderem das fällt darunter, dass ich meinte, unterschiedliche Browser arbeiten unterschiedlich.

  • Das schließe ich daraus, dass der Browser Vivaldi https://vivaldi.com/ bspw. belegt bspw. im Arbeitsspeicher 41 MB bei 5 geöffneten Tabs. Wenn ich ein neues Firefox-Profil erstelle, Firefox-Instanz starte, dann belegt Firefox sofort 90 MB und dann nach der Öffnung der gleichen Webseiten wie im Vivaldi-Browser belegt Firefox weitere 15 MB. Und gibt diesen Arbeitsspeicher nach dem Scließen der Tabs nicht wieder frei.

    Zählst du den Hauptprozess im Taskmanager oder wie kommst du zu den Werten?

  • Und doch, auch Chromium-basierte Browser besitzen ein "Zurück-Vorwärts-Caching" ("bfcache"). Der Unterschied zwischen Firefox und Chrome ist nur, dass Firefox ein paar Seiten mehr zurück geht und das ist gewolltes Verhalten von Firefox.

    Ist es nicht so, dass bei den dynamisch aufgebauten Webseiten so ein "bfcache" keinen Vorteil bringt?

    Du vergleichst Äpfel mit Birnen, weil unterschiedliche Browser nun einmal unterschiedlich arbeiten. Und dass der eine Browser mit mehr RAM startet, sagt nichts über die Skalierbarkeit aus. Skalierbarkeit meint den Umgang in Abhängigkeit von der Anzahl der Tabs.

    Also wie im Startpost beschrieben, suche ich nach Lösungsansätzen, mit den bei meinen Arbeitsgewohnheiten - sprich die Browser-Instanzen bleiben nach mehreren Ausschalten/ Einschalten-Vorgängen erhalten - diese dauerhafte Browser-Instanzen nicht zuviel RAM belegen bzw. funktionsfähig bleiben.

  • Lurtz hat nach dem Hauptprozess gefragt und wenn du das mit Ja beantwortest, dann misst du nicht richtig. ;) Denn wie ich auch schon schrieb: du musst alle Browser-Prozesse addieren. Moderne Browser nutzen mehr als einen Prozess.

    Ist es nicht so, dass bei den dynamisch aufgebauten Webseiten so ein "bfcache" keinen Vorteil bringt?

    Ich denke nicht, dass sich das pauschal beantworten lässt. Aber auch bei dynamischen Webseiten sollte ein wichtiger Teil ja statisch sein, die ganzen Style-Anweisungen, Schriften und so. Ich kenne keine Webseite, bei der jedes Byte dynamisch ist.


  • Da bisher noch mit keiner Silbe darauf eingegangen wurde, verweise ich nochmal auf Beitrag 6.. :)

    Danke für dein Tipp. Ich habe das Skript ReduceMemory.uc.js in den Ordner

    Code
    C:\Users\User123\AppData\Roaming\Mozilla\Firefox\Profiles\vyzsd0ia.default\chrome\

    kopiert. Ich sehe keinen Button wie hier https://github.com/ardiman/userCh…er/reducememory dargestellt. Was kann ich machen, um das Skript ReduceMemory.uc.js zum Laufen zu bringen?

  • Ich habe die Erweiterung userChromeJS installiert. Verstehe ich es richtig, dass für die Einbindung des Skripts ReduceMemory.uc.js :

    • ich muss ReduceMemory.uc.js im Ordner C:\Users\User123\AppData\Roaming\Mozilla\Firefox\Profiles\vyzsd0ia.default\chrome\ speichern
    • in der userChrome.js im gleichen Ordner eine Anweisung
      Code
      userChrome.import("ReduceMemory.uc.js");

      platziert.


    Ich bin mir nicht sicher, ob in meiner Schreibweise die Syntax für userChrome.import("Skript ReduceMemory.uc.js"); korrekt ist. Wie binde ich das Skript Skript ReduceMemory.uc.js in der userChrome.js ein?

    Habe in der userChrome.js die Anweisung

    Code
    userChrome.import("*", "UChrm");

    platziert. Ich nehme an, dass diese Anweisung müsste für die Einbindung aller Skripts sorgen. Hier https://github.com/ardiman/userCh…er/reducememory wird erklärt

    Zitat

    Damit bekommt man in der Add-on-Leiste einen Button, mit dem man bei Bedarf auf die Schnelle die Speicherauslastung des Firefox minimieren kann.

    Ich sehe immer noch keinen Button. Allerdings ich weiss nicht, ob ich die Add-On-Leiste separat einblenden muss - wie geht das?


  • in der userChrome.js im gleichen Ordner eine Anweisung


    Den Eintrag:
    userChrome.import("ReduceMemory.uc.js");

    bitte wieder entfernen.


    Habe in der userChrome.js die Anweisung


    Nur die gehört da auch hin.


    ob ich die Add-On-Leiste separat einblenden muss - wie geht das?


    Die gibt es wenn nur noch per Erweiterung.
    Sieh bitte mal oben unter: Ansicht > Symbolleisten nach ob sie da eingetragen ist.

  • Das Symbol wird oben neben der Suchleiste eingeblendet, du brauchst also keine Addonbar dazu.

    Hast du hier im Anpassenfenster auch mal nachgesehen?

    [attachment=0]Screenshot (238).png[/attachment]

    Sollte er da sein zieh ihn einfach oben auf eine Leiste.

    PS:
    Eine Funktion des Scriptes kann ich hier allerdings nicht feststellen :-??

  • Mein "Anpassen"-Menü sieht so aus:

    [attachment=0]123.png[/attachment]

    Ich habe jetzt probeweise anstelle der userChrome.js, die mit userChromeJS installiert wurde (und viele Beispiele als Kommentar entält) eine userChrome.js getestet, die nur diese eine Zeile

    Code
    userChrome.import("*", "UChrm");

    enthält. Das Ergebnis ist negativ - kein Button. Ist diese abgespeckte userChrome.js Version korrekt?