Erledigt. Vielen Dank für den Hinweis
Gern geschehen.
Erledigt. Vielen Dank für den Hinweis
Gern geschehen.
Hallo,
gibt es von MemoryMonitorMod.uc.js eine Version für FF68+?
Oder etwas Ähnliches?
Danke.
Dieses Script arbeitet einwandfrei hier in 68 und 70...
Beachte Zeile 23 und 26
muss jetzt so heißen
// ==UserScript==
// @name MemoryMonitorMod.uc.js
// @description Einfacher FF-Speicher-Monitor
// @include main
// @charset UTF-8
// @note Basiert auf dem Script MemoryMonitorMod.uc.js
// ==/UserScript==
var ucjsMM = {
// Update-Intervall[ms]
_interval: 5000,
// Neustart bei maximaler Speichernutzung (Achtung! Anpassen an die darunter gewählte Speichereinheit)
_maxMemory: 1500,
// Speicher-Einheit: B, KB, KiB, MB, MiB, GB, GiB
_prefix: " MB",
// Speicher-Einheitanzeige in der Statusbar
_dPrefix: false,
// automatischen Restart bei Überschreitung von _maxMemory durchführen
_autoRestart: false,
interval : null,
init : function () {
var memoryPanel = document.createXULElement('toolbaritem');
memoryPanel.id = 'MemoryDisplay';
memoryPanel.setAttribute('tooltiptext', 'Speicher Monitor. Klick öffnet about:memory');
var label = document.createXULElement('label');
label.setAttribute('value', ucjsMM._MemoryValue + ucjsMM._prefix);
memoryPanel.appendChild(label);
document.getElementById('nav-bar-customization-target').insertBefore(memoryPanel, document.getElementById('search-container'));
this.start();
this.interval = setInterval(this.start, this._interval);
},
start : function () {
try {
var MemReporters = Cc['@mozilla.org/memory-reporter-manager;1'].getService(Ci.nsIMemoryReporterManager);
var workingSet = MemReporters.resident;
ucjsMM._MemoryValue = Math.round(workingSet / (1024 * 1024));
var restartMemory = ucjsMM._maxMemory * 1024 * 1024;
var memoryPanel = document.getElementById('MemoryDisplay');
memoryPanel.firstChild.setAttribute('value', ucjsMM.addFigure(ucjsMM._MemoryValue) + ucjsMM._prefix);
memoryPanel.setAttribute('onclick', "if (event.button == 0) openUILinkIn('about:memory', 'tab', {})");
if (workingSet > restartMemory) {
if (memoryPanel.style.backgroundColor == 'red' && ucjsMM._autoRestart)
ucjsMM.restart();
else
memoryPanel.style.backgroundColor = 'red';
} else if (workingSet > restartMemory * 0.8)
memoryPanel.style.backgroundColor = '#FF99FF';
else if (workingSet > restartMemory * 0.6)
memoryPanel.style.backgroundColor = '#FFFF99';
else
memoryPanel.style.backgroundColor = 'transparent';
} catch (ex) {
clearInterval(ucjsMM.interval);
}
},
addFigure : function (str) {
var num = new String(str).replace(/,/g, '');
while (num != (num = num.replace(/^(-?\d+)(\d{3})/, '$1,$2')));
return num;
},
restart : BrowserUtils.restartApplication
}
ucjsMM.init();
Alles anzeigen
oh man(n) danke Boersenfeger für den Hinweis
ich hab schon die "Krätze" bekommen vom suchen
wider 3 zum leben im 69 (aurora) gebracht
danke danke danke für den wichtigen Hinweis für mich
gruß uni
Danke.
Ich kriege das Symbol nicht angezeigt. Bzw. nur dann, wenn ich einen Button, den ich dort nicht haben will, in die Navigationsleiste verschiebe und ihn in Zeile 29 eintrage. Dann wird das Symbol aber an ganz anderer Stelle in der Navigationsleiste angezeigt. Wenn ich in Zeile 29 einen vorhandenen Button in der Navigationsleiste eintrage, wird das Symbol nicht angezeigt. Das gleiche bei dem Versuch, es in der 'bottom-toolbar', die durch ein anderes Skript erzeugt wird, zu platzieren. Ich bin ratlos.
(Ich bin heute nicht mehr am Computer.)
Dieses Script arbeitet einwandfrei hier in 68 und 70...
So? Hast du mal auf die Speicheranzeige klickt? Öffnet sich da die Seite about:memory?
Öffnet sich da die Seite about:memory?
Mit meiner Anpassung vom Script funktioniert es wieder.
// ==UserScript==
// @name MemoryMonitorMod.uc.js
// @description Einfacher FF-Speicher-Monitor
// @include main
// @charset UTF-8
// @note Basiert auf dem Script MemoryMonitorMod.uc.js
// ==/UserScript==
var ucjsMM = {
// Update-Intervall[ms]
_interval: 5000,
// Neustart bei maximaler Speichernutzung (Achtung! Anpassen an die darunter gewählte Speichereinheit)
_maxMemory: 1500,
// Speicher-Einheit: B, KB, KiB, MB, MiB, GB, GiB
_prefix: " MB",
// Speicher-Einheitanzeige in der Statusbar
_dPrefix: false,
// automatischen Restart bei Überschreitung von _maxMemory durchführen
_autoRestart: false,
interval : null,
init : function () {
var memoryPanel = document.createXULElement('toolbaritem');
memoryPanel.id = 'MemoryDisplay';
memoryPanel.setAttribute('tooltiptext', 'Speicher Monitor. Klick öffnet about:memory');
var label = document.createXULElement('label');
label.setAttribute('value', ucjsMM._MemoryValue + ucjsMM._prefix);
memoryPanel.appendChild(label);
document.getElementById('nav-bar-customization-target').insertBefore(memoryPanel, document.getElementById('search-container'));
this.start();
this.interval = setInterval(this.start, this._interval);
},
start : function () {
try {
var MemReporters = Cc['@mozilla.org/memory-reporter-manager;1'].getService(Ci.nsIMemoryReporterManager);
var workingSet = MemReporters.resident;
ucjsMM._MemoryValue = Math.round(workingSet / (1024 * 1024));
var restartMemory = ucjsMM._maxMemory * 1024 * 1024;
var memoryPanel = document.getElementById('MemoryDisplay');
memoryPanel.firstChild.setAttribute('value', ucjsMM.addFigure(ucjsMM._MemoryValue) + ucjsMM._prefix);
memoryPanel.setAttribute('onclick', "if (event.button == 0) openTrustedLinkIn('about:memory', 'tab', {})");
if (workingSet > restartMemory) {
if (memoryPanel.style.backgroundColor == 'red' && ucjsMM._autoRestart)
ucjsMM.restart();
else
memoryPanel.style.backgroundColor = 'red';
} else if (workingSet > restartMemory * 0.8)
memoryPanel.style.backgroundColor = '#FF99FF';
else if (workingSet > restartMemory * 0.6)
memoryPanel.style.backgroundColor = '#FFFF99';
else
memoryPanel.style.backgroundColor = 'transparent';
} catch (ex) {
clearInterval(ucjsMM.interval);
}
},
addFigure : function (str) {
var num = new String(str).replace(/,/g, '');
while (num != (num = num.replace(/^(-?\d+)(\d{3})/, '$1,$2')));
return num;
},
restart : BrowserUtils.restartApplication
}
ucjsMM.init();
Alles anzeigen
Andreas, du nimmst mir meinen Triumph. Die Änderung in Zeile 41 wollte ich Boersenfeger präsentieren.
Ich kann ja meinen Beitrag wieder löschen wenn du willst.
Ach nein, das wäre unfair.
Danke.
Ich kriege das Symbol nicht angezeigt. Bzw. nur dann, wenn ich einen Button, den ich dort nicht haben will, in die Navigationsleiste verschiebe und ihn in Zeile 29 eintrage. Dann wird das Symbol aber an ganz anderer Stelle in der Navigationsleiste angezeigt.
Ja, was denn nun: Wird es angezeigt oder nicht angezeigt? Das mit der anderen Stelle hat aber seine Bewandtnis: Im Skript ist die Stelle vor der Suchleiste als Anzeigeort festgelegt - Zeile 29 search-container. Das setzt natürlich voraus, dass die Suchleiste auch angezeigt wird, denn standardmäßig wird sie es nicht. Und noch etwas: Ein echtes Symbol gibt es nicht, jedenfalls nicht bei mir, sondern nur die Anzeige der Speichergröße, also so etwas wie 305 MB. Es gibt auch im Skript keinen Code, der ein grafisches Symbol definieren würde. Andererseits ist die Anzeige weiterhin in der Symbolleiste, auch wenn ich die Suchleiste in das Anpassen-Fenster verschiebe. Ein wenig eigenartig, aber so ist die Anzeige wenigstens nicht weg, wenn die Suchleiste ausgeblendet ist.
Ich kann noch etwas Kosmetik zum Skript anbieten, wenn ihr das gleiche Problem wie ich hier habt.
Standardmäßig erscheint die Anzeige bei mir etwas angeklatscht am oberen Symbolleistenrand. Drunter ist Leerraum. Ich habe mir daher zwei Zeilen ins Skript eingefügt, und zwar unter Zeile 52:
Folgende Zeilen habe ich darunter eingefügt (jetzt also die Zeilen 53 und 54):
Die erste Zeile setzt einen Abstand von 12 Pixel vom oberen Rand der Symbolleiste. Bei mir erscheint dann die Anzeige in etwa vertikal zentriert. Die zweite Zeile setzt einen Abstand vom Symbol links von dieser Anzeige. 5 Pixel sehen bei mir in etwa horizontal zentriert zwischen vorhergehendem und nachfolgendem Symbol aus. Wenn ihr das Problem ebenfalls habt, könnt ihr das verwenden, müsst aber u. U, die Werte anpassen. Ich habe hier nur einen kleinen Monitor, da ist Platz immer knapp.
So, jetzt habe ich es zum Laufen gebracht. Warum auf einmal gar nichts mehr ging lag wohl daran, dass es mir bei den verschiedenen Änderungen die Kodierung der Datei von UTF-8 auf ANSI verstellt hat. Nach der Korrektur wurde das Panel (das meinte ich mit Symbol in meinem vorherigen Beitrag, war schlecht gewählt) mit 2002Andreas Version in der Navigationsleiste angezeigt
In der "bottom-toolbar" (Addon-Leiste) ging es vermutlich nicht, weil das Skript das Panel in einer Leiste anzeigen sollte, die ebenfalls erst durch ein Skript erzeugt wird. Das Problem konnte ich lösen, indem ich das Skript mit
"umrahmt" habe, das heißt, es wird erst 5 Sekunden nach den anderen Skripten ausgeführt, dann ist die Addon-Leiste schon da.
Mit milupo 's Änderung sieht's noch besser aus.
Das Script MemoryMonitorMod.uc.js zeigt den Speicherverbrauch vom Fx an.
Nur, der ist nicht identisch mit dem angezeigtem Verbrauch im Taskmanager
Ich habe im Taskmanager z.Zt. 6 Firefox-Prozesse mit über 600MB, das Skript zeigt ca. 230MB an
War die ganze Mühe wohl umsonst, oder weiß jemand, wie sich das berichtigen lässt?
Ich habe hier drei Leistenskripte, eins für eine obere Leiste, eins für eine untere Leiste und eins für eine vertikale Leiste.
Bei der oberen Leiste und vertikalen Leiste hatte ich noch keinen Erfolg, aber bei der unteren Leiste reichte es nav-bar-customization-target durch new-toolbar zu ersetzen. Das ist die ID der unteren Leiste in meinem Leistenskript. Bei den anderen beiden Leisten funktiorte der Austausch der ID leider nicht.
document.getElementById('new-toolbar').insertBefore(memoryPanel, document.getElementById('search-container'));
Ich musste allerdings die padding-Werte (siehe oben Beitrag #2332) neu anpassen.
Weil ihr den falschen Speicher (resident) auslest oder zu wenig zusammenrechnet?
https://developer.mozilla.org/en-US/docs/Moz…ReporterManager
Bin grad mit Win8 unterwegs, dort zeigt der TM den "Private WS" an (identisch mit ProcessHacker), während ProcessHacker als "Working Set" wesentlich mehr anzeigt und "Virtual Size" um einiges höher liegt.
Warum sehe ich bei Andreas nicht die Hintergrundprozesse von Firefox, sondern nur die unter Apps? Die sind auch wichtig.
Unter about:memory werden alle Arten angezeigt.
Ansonsten nur noch Infos
http://blogs.microsoft.co.il/sasha/2016/01/…ge-demystified/
Nach der spannenden Lektüre über die verschiedenen Arten von Arbeitsspeicher-Anzeigen (danke an .DeJaVu ) sieht es so aus, dass das Skript nur den "Main Process" anzeigt, und zwar den "working set" ("Arbeitssatz" im Taskmanager von Windows 7).
Weiß jemand, wie man auch die anderen Prozesse in die Berechnung des Skripts bekommt?
Mir ist das Nichtarbeiten des Klicks auf die Anzeige bisher nicht aufgefallen, da ich dort noch nie drauf geklickt habe.. Mir reicht die Anzeige; wenn dieser Wert über 500 MB ansteigt wird dieser mit einem Klick auf einen anderen Button (RamBack.uc.js) wieder reduziert.
milupo: Den Triumph darfst du gern behalten..
Nach der spannenden Lektüre über die verschiedenen Arten von Arbeitsspeicher-Anzeigen (danke an .DeJaVu ) sieht es so aus, dass das Skript nur den "Main Process" anzeigt, und zwar den "working set" ("Arbeitssatz" im Taskmanager von Windows 7).
Weiß jemand, wie man auch die anderen Prozesse in die Berechnung des Skripts bekommt?
aborix und Sören Hentzschel , wenn keiner mehr weiterwusste, kam von einem von euch meist noch die rettende Hilfe. Weiß von euch jemand, wie man die Größe aller Firefox-Prozesse zusammen mit diesem Skript anzeigen kann?
Ich kann das vorhandene Script nicht einmal testen. Auf macOS zerhaut das Script die Firefox-Oberfläche.