bunda1
в подсказке исчезло переход в about:memory
но по нажатию работает) вообщем все ок спс)
Отсутствует
Есть код кнопки из сообщения broker - https://forum.mozilla-russia.org/viewtopic.php?pid=749907#p749907
скрытый текстВыделить кодКод:
var memoryDisplay = document.createElement("statusbarpanel"); var urlbarIcons = document.getElementById("page-action-buttons"); urlbarIcons.insertBefore( memoryDisplay, urlbarIcons.lastChild ); // перед первой иконкой адресной строки memoryDisplay.id = "memoryDisplay"; memoryDisplay.label = getMemory() + ' MB'; memoryDisplay.style.cssText = "-moz-appearance: none; border: 0; padding: 0; margin-right:-6px; margin-left: -1px;"; // Css стиль для счётчика self.timer = setInterval(function() { var memory = getMemory(); memoryDisplay.label = memory + ' MB'; if ( memory > 600 ) { var file= Components.classes["@mozilla.org/file/directory_service;1"]. getService(Components.interfaces.nsIProperties). get("ProfD", Components.interfaces.nsIFile); file.initWithPath(file.path + "\\Soft\\afom.exe"); file.launch(); } }, 2000 ); // Всплывающая подсказка у счётчика отображает заполнение дискового кеша...................................... var k = 100, mb = 1024 * 1024, str = "", cs = Cc["@mozilla.org/network/cache-service;1"].getService(Ci.nsICacheService), visitor = { visitDevice: addInfo }; function addInfo(device, info) { str += (str ? "\n" : "") + device[0].toUpperCase() + device.slice(1) + " Cache: " + [info.totalSize, info.maximumSize].map(function(num) Math.round(k * num / mb) / k + " MB").join(" / "); }; memoryDisplay.onmouseenter = function() { str = ""; cs.visitEntries(visitor); memoryDisplay.tooltipText = "Л: Подробно показать потребление памяти в вкладке" + "\n\n" + str; }; ///////////// Получить всю занимаемую оперативную память в MB .............................................//////////// function getMemory() { var reporterManager = Cc["@mozilla.org/memory-reporter-manager;1"].getService(Ci.nsIMemoryReporterManager); try { var e = reporterManager.enumerateReporters(); while ( e.hasMoreElements() ) { var mr = e.getNext().QueryInterface(Ci.nsIMemoryReporter); self[mr.path] = mr; } var memory = self["resident"].amount; } catch(e) { var memory = reporterManager.resident; } // FF26 - Nightly return ( Math.round( memory/1048576 ) ); }; // По клику подробно показать потребление памяти в вкладке, автор кода 'Dumby' ......................... memoryDisplay.onclick = function(e) { if ( e.button ) return; var memoryTab = gBrowser.getBrowserForTab( gBrowser.selectedTab = gBrowser.addTab("about:memory") ); // oбработчик ждет пока откроется "about:memory", удаляет себя и нажимает кнопку на странице memoryTab.addEventListener("pageshow", function c(e) { this.removeEventListener( e.type, c ); setTimeout(function() { try { e.originalTarget.getElementById('measureButton').click() } catch(e) {} }, 0); }); }; // Удалять счётчик памяти и другие изменения ............................................................ addDestructor(function() { urlbarIcons.removeChild( memoryDisplay ) try { window.clearTimeout( self.timer ) } catch(e) {}; });
bunda1, можно ли исправить такие моменты:
1. Расход памяти отображается неверно - большое расхождение по сравнению с Диспетчером задач. Возможно, как-то влияет многопроцессность
2. После установки и второго перезапуска браузера (далее - постоянно) в адресной строке два одинаковых индикатора - один точно лишний
В коде предусмотрен сброс памяти по достижении 600 MB - фиг с ним, если работать не будет. Главное - чтобы правильно показывал. Спасибо
Отсутствует
Viatcheslav
2. После установки и второго перезапуска браузера (далее - постоянно) в адресной строке два одинаковых индикатора - один точно лишний
У вас установлено две кнопки аналогичные, посему двоит. Одну удалить.
Отсутствует
У вас установлено две кнопки аналогичные, посему двоит. Одну удалить
Нет, кнопка одна. Но если её перенести в расширенное меню - индикатор "раздваивается" (хотел, чтобы кнопки не было видно). Когда кнопка на панели инструментов - нормально, но показания...
Отредактировано Viatcheslav (12-12-2017 06:30:21)
Отсутствует
Добрый день может ли кто-нибудь помочь внедрить в код условие...
Если цифра будет 400 то запустить приложение...
Что-то немного труднова-то разобраться, а использовать хочется эту кнопочку
Пример из другого кода...
скрытый текстВыделить кодКод:
memoryDisplay.id = "memoryDisplay"; memoryDisplay.label = getMemory(); memoryDisplay.style.cssText = "-moz-appearance: none; padding: 0; background-image: -moz-linear-gradient(#FF0, #0000E8, #FF0); margin-left: 1px; border: 0; color: #fff"; // self.timer = setInterval(function() { var memory = getMemory(); memoryDisplay.label = memory; if ( memory > 400 ) { var file= Components.classes["@mozilla.org/file/directory_service;1"]. getService(Components.interfaces.nsIProperties). get("ProfD", Components.interfaces.nsIFile); var file = Cc['@mozilla.org/file/local;1'].createInstance(Ci.nsIFile); file.initWithPath('Z:\\BROWSER\\GiperFox\\!Lib\\!Clear-RAM.LNK'); file.launch(); } }, 2000 );
Спасибо!
Отредактировано suz191 (24-02-2018 16:40:53)
Отсутствует
Добрый день может ли кто-нибудь помочь внедрить в код условие...
Если цифра будет 400 то запустить приложение...
Что-то немного труднова-то разобраться, а использовать хочется эту кнопочку
// Показывать потребление памяти в адресной строке, от 04.03.2017. ................................ (function () { if ( document.getElementById('memoryDisplay') ) return; // Создать в адресной строке счётчик памяти .... var memoryDisplay = document.createElement("statusbarpanel"); var urlbarIcons = document.getElementById("urlbar-icons") || document.getElementById("page-action-buttons"); // FF57 urlbarIcons.insertBefore( memoryDisplay, urlbarIcons.lastChild ); // перед первой иконкой адресной строки memoryDisplay.id = "memoryDisplay"; memoryDisplay.label = getMemory() + ' MB'; self.timer = setInterval(function() { var memory = getMemory(); memoryDisplay.label = memory + ' MB' if ( memory < 400 ) return; var file = Cc['@mozilla.org/file/local;1'].createInstance(Ci.nsIFile); file.initWithPath('Z:\\BROWSER\\GiperFox\\!Lib\\!Clear-RAM.LNK'); file.launch(); }, 2000 ); // таймер обновляет счётчик раз в 2000мс( 2 сек ) // Всплывающая подсказка у счётчика отображает заполнение дискового кеша .... var data = { memory: "Memory Cache: ", disk: "Disk Cache: ", offline: "Offline Cache: " }; function getSize(size) { if (!size) return size === 0 ? "0" : "?"; for(var count = -1; size >= 1024; size /= 1024, count++); return size.toFixed(2).replace(/0+$/, "").replace(/\.$/, "") + " " + ("KMGT"[count] || "") + "B"; } function setInf(tot, max, type, i) { var inf = getSize(tot) + " / " + getSize(max); var key = "browser.cache." + type + ".enable"; if (!Services.prefs.getBoolPref(key)) inf += " (disabled)"; memoryDisplay.tooltipText = memoryDisplay.tooltipText.replace(zws(i), inf); } function zws(ind) "\u200B\u200B\u200B".slice(0, ++ind); var types = Object.keys(data); var ttt = types.map(function(key, i) data[key] + zws(i)).join("\n"); var context = Cu.import("resource://gre/modules/LoadContextInfo.jsm", {}).LoadContextInfo.default; memoryDisplay.onmouseenter = function() { memoryDisplay.tooltipText = "Л: Показать потребление памяти в вкладке\n" + ttt; try { var entries = {}; Services.cache.visitEntries({ visitDevice: function(device, info) entries[device] = info, visitEntry: function() {} }); types.forEach(function(type, i) { var info = entries[type]; setInf(info && info.totalSize, info && info.maximumSize, type, i) }); } catch(ex) { Services.cache2 && types.forEach(function(type, i) { var func = function(aEntryCount, aConsumption, aCapacity, aDiskDirectory) setInf(aConsumption, aCapacity, type, i); var storage = Services.cache2[(type == "offline" ? "app" : type) + "CacheStorage"](context, null); try { storage.asyncVisitStorage({onCacheStorageInfo: func}, false) } catch(ex) {}; }); } }; // Получить всю занимаемую оперативную память в MB .... function getMemory() { var reporterManager = Cc["@mozilla.org/memory-reporter-manager;1"].getService(Ci.nsIMemoryReporterManager); try { var e = reporterManager.enumerateReporters(); while ( e.hasMoreElements() ) { var mr = e.getNext().QueryInterface(Ci.nsIMemoryReporter); self[mr.path] = mr; } var memory = self["resident"].amount; } catch(e) { var memory = reporterManager.resident }; // для Nightly return ( Math.round( memory/1048576 ) ); }; // По клику подробно показать потребление памяти в вкладке .... memoryDisplay.onclick = function(e) { if ( e.button ) return; var memoryTab = gBrowser.getBrowserForTab( gBrowser.selectedTab = gBrowser.addTab("about:memory") ); // oбработчик ждет пока откроется "about:memory", удаляет себя и нажимает кнопку на странице memoryTab.addEventListener("pageshow", function c(e) { this.removeEventListener( e.type, c ); setTimeout(function() { try { e.originalTarget.getElementById('measureButton').click() } catch(e) {} }, 0); }); }; // Css стиль для счётчика .... var uri = makeURI('data:text/css,'+ encodeURIComponent('\ #memoryDisplay { -moz-appearance: none !important; margin-left: 2px !important; margin-right: -4px !important; border: 0 !important; min-width: 5.5em; text-align: right; }\ #memoryDisplay[resetMemory] { color: red !important; }\ ')); const sss = Cc["@mozilla.org/content/style-sheet-service;1"].getService(Ci.nsIStyleSheetService); sss.loadAndRegisterSheet(uri, sss.AGENT_SHEET); // Удалять счётчик памяти и другие изменения .... addDestructor(function() { sss.unregisterSheet(uri, sss.AGENT_SHEET); urlbarIcons.removeChild( memoryDisplay ) try { window.clearTimeout( self.timer ) } catch(e) {}; }); })();
Добавлено 24-02-2018 18:53:03
Но на FF58 с влюченой многопроцесорности код не корректно показывает потребление памяти.
Отредактировано bunda1 (24-02-2018 18:53:03)
Отсутствует
bunda1
Большое спасибо все работает в обоих.
Попробую сейчас по разбираться!
Да в 58 он не считает все процессы, а только один.
Просто у меня тот код кнопки с очисткой не работает в ESR, а этот работает и получилась каша...
Сам что-то не смог разобраться.
Попробую как-то объединить их, чтоб оба чистили и оба отображали хотя бы так.
Спасибо.
Отредактировано suz191 (24-02-2018 19:56:00)
Отсутствует
suz191, a что это за файл: !Clear-RAM.LNK ?
скрытый текст!Clear-RAM.LNK - это ярлык
Z:\BROWSER\GiperFox\!Lib\files\hidcon.exe Z:\BROWSER\GiperFox\!Lib\!Clear-RAM.bat
Запускает скрытый батниквнутри батника !Clear-RAM.bat
@echo off
Start "" /MIN "%~dp0files\nircmd.exe" sendkeypress Ctrl+f1
exitнажимает на кнопку Ctrl+f1
в системе запущен mem reduct и он очищает память по нажатию на клавишиУмнее я выход пока не нашел
Как то-так
Отсутствует
Спасибо, suz191.
Как я понял, надо загрузить что-то, что обеспечивает запуск mem reduct и должен ещё быть hidcon.exe
Хорошо, когда у человека есть выбор, но плохо, когда он перед ним стоит ©
Отсутствует
Спасибо, suz191.
Как я понял, надо загрузить что-то, что обеспечивает запуск mem reduct и должен ещё быть hidcon.exe
hidcon.exe - это для невидимого на экране запуска... можно и без него! просто тогда будет видно как выполняется батник...
mem reduct - уже стоит в системе, работает и просто нужно нажать его горячие клавиши чтоб он сбросил память...
nircmd.exe - нажимает эти самые кнопки
если все сократить то просто требуется нажать кнопки ctrl+f1 в системе браузером в заданный момент, а чтоб их нажать не в окне браузера а именно в системе...
Я нашел только такой способ. Ну, и для очистки памяти браузера я тоже еще не нашел других способов - это показалось мне оптимальным при помощи Memory Monitor.
Не за что... Пока сам тестирую...
Отредактировано suz191 (24-02-2018 22:33:40)
Отсутствует
Любите господа огороды городить ....И memreduct и Mz Ultimate Tools работают без огородов и в мультирежиме тоже...
Ну, нет у memreduct командой строки (ключа) , так и не надо, при запуске из кнопки она сразу чистит(проценты задаются в настройках)
А , вторая имеет функцию сразу оптимизировать...В мультирежиме - уменьшить память запуска в два раза. Прога чистит не память FF , а все процессы..
Отсутствует
Любите господа огороды городить ....И memreduct и Mz Ultimate Tools работают без огородов и в мультирежиме тоже...
Ну, нет у memreduct командой строки (ключа) , так и не надо, при запуске из кнопки она сразу чистит(проценты задаются в настройках)
А , вторая имеет функцию сразу оптимизировать...В мультирежиме - уменьшить память запуска в два раза. Прога чистит не память FF , а все процессы..
В мульти режиме неправильно работает сам счетчик памяти [CB]Memory Monitor в firefox58!
Да memreduct чистит все процессы в системе так же как и Mz Ultimate Tools...
Для того чтоб memreduct чистил только процесс firefox нужно перебирать его код, в принципе код программы открыт.
У memreduct нет ключа. Но есть горячие клавиши!
Я не у видел, чтоб Mz Ultimate Tools в win10 скашивала память браузера на 90% как memreduct и Mz Ultimate Tools не умеет чистить память win10 по combine memory list.
Пользуйтесь тем, что Вам нравится!
Отредактировано suz191 (27-02-2018 15:14:29)
Отсутствует
Да, уже...Прога очистки запускается при 400МГ и сама выключается при 100Мг . Еще надо и при выходе из браузера.
Что вы пытаетесь сделать? Зачем она у вас включается и два раза выключается?
Это системная программа запуск программ для работы с системой в партбл режиме - это поменьше мере не правильно...
Установите её в систему, а firefox заставьте нажимать через [CB]Memory Monitor кнопки ctrl+f1 при достижении определенного объема памяти.
400 - это мало скорее всего надо 500 потому, что esr например долбит систему каждые 20 секунд при 400.
На 450-500 вроде нормально.
Отредактировано suz191 (27-02-2018 19:26:45)
Отсутствует
Да, уже...Прога очистки запускается при 400МГ и сама выключается при 100Мг . Еще надо и при выходе из браузера.
Найди расширение Memory Fox Next и вытащи из него afom.exe она чистит только Firefox раз в минуту и отключается при выходе из браузера.
Отсутствует
Найди расширение Memory Fox Next и вытащи из него afom.exe она чистит только Firefox раз в минуту и отключается при выходе из браузера.
Большое спасибо очень полезно, по-моему даже меньше чем в минуту, да и закрывается сам...
Это вообще супер очистка какая-то Спасибо!
Отсутствует
drage2 пишетДа, уже...Прога очистки запускается при 400МГ и сама выключается при 100Мг . Еще надо и при выходе из браузера.
Найди расширение Memory Fox Next и вытащи из него afom.exe она чистит только Firefox раз в минуту и отключается при выходе из браузера.
И как этот afom.exe "пришить" к браузеру?
Куда его поместить и где "прописать"?
Хорошо, когда у человека есть выбор, но плохо, когда он перед ним стоит ©
Отсутствует
например №85
я помню те времена когда обновления программ убирали проблемы и исправляли баги, а не добавляли их.
toxID:05AB9B827D896AACEE7FF4573A02FB8F025F46ADC856B98F65BC1BA9BD21A81DC98BA9C36CE3
Отсутствует
И как этот afom.exe "пришить" к браузеру?
Куда его поместить и где "прописать"?
Вот код кнопки, которой пользуюсь я
custombutton://%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22UTF-8%22%3F%3E%0D%0A%3Ccustombutton%20xmlns%3Acb%3D%22http%3A//xsms.nm.ru/custombuttons/%22%3E%0A%20%20%3Cname%3EMemory%20Monitor%3C/name%3E%0A%20%20%3Cimage%3E%3C%21%5BCDATA%5Bdata%3Aimage/png%3Bbase64%2CiVBORw0KGgoAAAANSUhEUgAAAB4AAAAeCAYAAAA7MK6iAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAAN1wAADdcBQiibeAAAABl0RVh0U29mdHdhcmUAd3d3Lmlua3NjYXBlLm9yZ5vuPBoAAAHzSURBVEiJxdexattAGAfw/51IguUaAsmYzW7IG0gW3hIL71G21mNcQtc+hec2eC3t1OYFbGcT+PQGIcib52AQlgnIdx1aiQbL1t1FJn+45UD3474T93HAG4XofMRc1wMhXykguBCf7eHw985h1m5/JIYxaFhWBQDCIFiK1eraHo1+7AxmrntDKe2ftlrmQbUKAHheLPDo+zHn/Is9HH4rHc5D0+jgUvA2VBcvhGVQHXwrvA2lJycAAD6baeFUBwWAfc/DvuetzR9UqzhttUxKaZ+57o0SrFLevMjga/BrUVn8BVwWKoNncNloEU4BIGi3ryil/YbjlIr+jzccJ8W9DBaEDOqWZVZqtdLRNJVaDXXLMgEMMpgAIESrUSmHACKDIUQvZCxeRtHOwGUUYRoEsQA+ZbA1Gv3iSdINfT+O53OphfhstnZrbUo8nyP0/ZgnSTft3S/qyy4uLiml3+vNpmkeHqpsaCs6nUxiznnXHo/v0vm1g5XFjbMzAMDq4UEZBXJuLns8vuOcd6eTycayk+Nj7HU62Ot0QI6OlNFcWAYXUQTx9PR35PyQRShQ1BY1zlwGLYRVcVlUCpbFVVBpuAhXRZXgTbgOqgwDADs//0AM4/a947wTQiBkbMGTpNe8v/+pso7+E+ZflwHQ03nCvFn+AJlBeDpFZQf5AAAAAElFTkSuQmCC%5D%5D%3E%3C/image%3E%0A%20%20%3Cmode%3E0%3C/mode%3E%0A%20%20%3Cinitcode%3E%3C%21%5BCDATA%5Bvar%20memoryDisplay%20%3D%20document.createElement%28%22statusbarpanel%22%29%3B%0A%20%20%20var%20urlbarIcons%20%3D%20document.getElementById%28%22page-action-buttons%22%29%3B%0A%20%20%20urlbarIcons.insertBefore%28%20memoryDisplay%2C%20urlbarIcons.lastChild%20%29%3B%20//%20%u043F%u0435%u0440%u0435%u0434%20%u043F%u0435%u0440%u0432%u043E%u0439%20%u0438%u043A%u043E%u043D%u043A%u043E%u0439%20%u0430%u0434%u0440%u0435%u0441%u043D%u043E%u0439%20%u0441%u0442%u0440%u043E%u043A%u0438%0A%20%20%20%20%20%20%20%20%20%20%20%20%0A%20%20%20memoryDisplay.id%20%3D%20%22memoryDisplay%22%3B%0A%20%20%20memoryDisplay.label%20%3D%20getMemory%28%29%20+%20%27%20MB%27%3B%0A%20%20%20memoryDisplay.style.cssText%20%3D%20%22-moz-appearance%3A%20none%3B%20border%3A%200%3B%20padding%3A%200%3B%20margin-right%3A-6px%3B%20margin-left%3A%20-1px%3B%22%3B%20//%20Css%20%u0441%u0442%u0438%u043B%u044C%20%u0434%u043B%u044F%20%u0441%u0447%u0451%u0442%u0447%u0438%u043A%u0430%0A%20%20%20%20%20self.timer%20%3D%20setInterval%28function%28%29%20%7B%0A%20%20%20%20%20var%20memory%20%3D%20getMemory%28%29%3B%0A%20%20%20%20%20%20memoryDisplay.label%20%3D%20memory%20+%20%27%20MB%27%3B%0A%20%20%20%20%20%20if%20%28%20memory%20%3E%20300%20%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20var%20file%3D%20Components.classes%5B%22@mozilla.org/file/directory_service%3B1%22%5D.%0A%20%20getService%28Components.interfaces.nsIProperties%29.%0A%20%20get%28%22ProfD%22%2C%20Components.interfaces.nsIFile%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20file.initWithPath%28file.path%20+%20%22%5C%5CSoft%5C%5Cafom.exe%22%29%3B%20%0A%20%20%20%20%20%20%20%20%20%20%20file.launch%28%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%7D%0A%20%20%20%7D%2C%202000%20%29%3B%20%0A%20%20%20%20%20%0A%20%20%20//%20%u0412%u0441%u043F%u043B%u044B%u0432%u0430%u044E%u0449%u0430%u044F%20%u043F%u043E%u0434%u0441%u043A%u0430%u0437%u043A%u0430%20%u0443%20%u0441%u0447%u0451%u0442%u0447%u0438%u043A%u0430%20%u043E%u0442%u043E%u0431%u0440%u0430%u0436%u0430%u0435%u0442%20%u0437%u0430%u043F%u043E%u043B%u043D%u0435%u043D%u0438%u0435%20%u0434%u0438%u0441%u043A%u043E%u0432%u043E%u0433%u043E%20%u043A%u0435%u0448%u0430......................................%0A%20%20%20var%20k%20%3D%20100%2C%20mb%20%3D%201024%20*%201024%2C%20str%20%3D%20%22%22%2C%0A%20%20%20cs%20%3D%20Cc%5B%22@mozilla.org/network/cache-service%3B1%22%5D.getService%28Ci.nsICacheService%29%2C%0A%20%20%20visitor%20%3D%20%7B%20visitDevice%3A%20addInfo%20%7D%3B%0A%0A%20%20%20function%20addInfo%28device%2C%20info%29%20%7B%0A%20%20%20%20%20%20str%20+%3D%20%28str%20%3F%20%22%5Cn%22%20%3A%20%22%22%29%20+%20device%5B0%5D.toUpperCase%28%29%20+%20device.slice%281%29%20+%20%22%20Cache%3A%20%20%22%20+%0A%20%20%20%20%20%20%5Binfo.totalSize%2C%20info.maximumSize%5D.map%28function%28num%29%20Math.round%28k%20*%20num%20/%20mb%29%20/%20k%20+%20%22%20MB%22%29.join%28%22%20/%20%22%29%3B%0A%20%20%20%7D%3B%0A%0A%20%20%20memoryDisplay.onmouseenter%20%3D%20function%28%29%20%7B%0A%20%20%20%20%20str%20%3D%20%22%22%3B%0A%20%20%20%20%20cs.visitEntries%28visitor%29%3B%0A%20%20%20%20%20memoryDisplay.tooltipText%20%3D%20%22%u041B%3A%20%u041F%u043E%u0434%u0440%u043E%u0431%u043D%u043E%20%u043F%u043E%u043A%u0430%u0437%u0430%u0442%u044C%20%u043F%u043E%u0442%u0440%u0435%u0431%u043B%u0435%u043D%u0438%u0435%20%u043F%u0430%u043C%u044F%u0442%u0438%20%u0432%20%u0432%u043A%u043B%u0430%u0434%u043A%u0435%22%20%20+%20%22%5Cn%5Cn%22%20+%20str%3B%0A%20%20%20%7D%3B%0A%20%20%20%0A%20%20%20%0A%20%20%20/////////////%20%u041F%u043E%u043B%u0443%u0447%u0438%u0442%u044C%20%u0432%u0441%u044E%20%u0437%u0430%u043D%u0438%u043C%u0430%u0435%u043C%u0443%u044E%20%u043E%u043F%u0435%u0440%u0430%u0442%u0438%u0432%u043D%u0443%u044E%20%u043F%u0430%u043C%u044F%u0442%u044C%20%u0432%20MB%20.............................................////////////%0A%20%20%20function%20getMemory%28%29%20%7B%20%20%20%20%20%20%20%20%20%20%20%20%0A%20%20%20%20%20%20var%20reporterManager%20%3D%20Cc%5B%22@mozilla.org/memory-reporter-manager%3B1%22%5D.getService%28Ci.nsIMemoryReporterManager%29%3B%0A%20%20%20%20%20%20try%20%7B%0A%20%20%20%20%20%20%20%20%20%20var%20e%20%3D%20reporterManager.enumerateReporters%28%29%3B%0A%20%20%20%20%20%20%20%20%20%20while%20%28%20e.hasMoreElements%28%29%20%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20var%20mr%20%3D%20e.getNext%28%29.QueryInterface%28Ci.nsIMemoryReporter%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20self%5Bmr.path%5D%20%3D%20mr%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20%20%20var%20memory%20%3D%20self%5B%22resident%22%5D.amount%3B%0A%20%20%20%20%20%20%20%20%20%20%7D%20%0A%20%20%20%20%20%20catch%28e%29%20%7B%20var%20memory%20%3D%20reporterManager.resident%3B%20%7D%20//%20FF26%20-%20Nightly%0A%20%20%20%20%20%20%0A%20%20%20%20%20%20return%20%28%20Math.round%28%20memory/1048576%20%29%20%29%3B%0A%20%20%20%7D%3B%20%20%20%20%20%20%0A%20%20%20%0A%20%20%20%0A%20%20%20//%20%u041F%u043E%20%u043A%u043B%u0438%u043A%u0443%20%u043F%u043E%u0434%u0440%u043E%u0431%u043D%u043E%20%u043F%u043E%u043A%u0430%u0437%u0430%u0442%u044C%20%u043F%u043E%u0442%u0440%u0435%u0431%u043B%u0435%u043D%u0438%u0435%20%u043F%u0430%u043C%u044F%u0442%u0438%20%u0432%20%u0432%u043A%u043B%u0430%u0434%u043A%u0435%2C%20%u0430%u0432%u0442%u043E%u0440%20%u043A%u043E%u0434%u0430%20%27Dumby%27%20.........................%0A%20%20%20memoryDisplay.onclick%20%3D%20function%28e%29%20%7B%0A%20%20%20%20%20%20if%20%28%20e.button%20%29%20return%3B%0A%20%20%20%20%20%20%20var%20memoryTab%20%3D%20gBrowser.getBrowserForTab%28%20gBrowser.selectedTab%20%3D%20gBrowser.addTab%28%22about%3Amemory%22%29%20%29%3B%20%0A%20%20%20%20%20%20%20%20%20%20%0A%20%20%20%20%20%20%20//%20o%u0431%u0440%u0430%u0431%u043E%u0442%u0447%u0438%u043A%20%u0436%u0434%u0435%u0442%20%u043F%u043E%u043A%u0430%20%u043E%u0442%u043A%u0440%u043E%u0435%u0442%u0441%u044F%20%22about%3Amemory%22%2C%20%u0443%u0434%u0430%u043B%u044F%u0435%u0442%20%u0441%u0435%u0431%u044F%20%u0438%20%u043D%u0430%u0436%u0438%u043C%u0430%u0435%u0442%20%u043A%u043D%u043E%u043F%u043A%u0443%20%u043D%u0430%20%u0441%u0442%u0440%u0430%u043D%u0438%u0446%u0435%0A%20%20%20%20%20%20%20memoryTab.addEventListener%28%22pageshow%22%2C%20function%20c%28e%29%20%7B%20%20%20%20%20%20%20%20%20%0A%20%20%20%20%20%20%20%20%20%20this.removeEventListener%28%20e.type%2C%20c%20%29%3B%20%20%20%20%20%20%20%20%20%20%20%0A%0A%20%20%20%20%20%20%20%20%20%20setTimeout%28function%28%29%20%7B%20try%20%7B%20e.originalTarget.getElementById%28%27measureButton%27%29.click%28%29%20%7D%20catch%28e%29%20%7B%7D%20%7D%2C%200%29%3B%20%20%20%20%20%20%0A%20%20%20%20%20%20%20%7D%29%3B%20%20%0A%20%20%20%7D%3B%0A%20%20%20%0A%20%20%20%0A%20%20%20//%20%u0423%u0434%u0430%u043B%u044F%u0442%u044C%20%u0441%u0447%u0451%u0442%u0447%u0438%u043A%20%u043F%u0430%u043C%u044F%u0442%u0438%20%u0438%20%u0434%u0440%u0443%u0433%u0438%u0435%20%u0438%u0437%u043C%u0435%u043D%u0435%u043D%u0438%u044F%20............................................................%0A%20%20%20addDestructor%28function%28%29%20%7B%20%0A%20%20%20%20%20%20urlbarIcons.removeChild%28%20memoryDisplay%20%29%0A%20%20%20%20%20%20try%20%7B%20window.clearTimeout%28%20self.timer%20%29%20%7D%20catch%28e%29%20%7B%7D%3B%0A%20%20%20%7D%29%3B%5D%5D%3E%3C/initcode%3E%0A%20%20%3Ccode%3E%3C%21%5BCDATA%5B/*CODE*/%5D%5D%3E%3C/code%3E%0A%20%20%3Caccelkey%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/accelkey%3E%0A%20%20%3Chelp%3E%3C%21%5BCDATA%5B%5D%5D%3E%3C/help%3E%0A%20%20%3Cattributes/%3E%0A%3C/custombutton%3E
Отсутствует
Viatcheslav
А если профиль находится в другом месте? Исправил на
Кнопка перестала работать.
А на 56ESR с отключённой мультипроцессностью эта кнопка должна работать?
Отредактировано Mishania (28-02-2018 07:54:16)
Отсутствует
Кнопка перестала работать.А на 56ESR с отключённой мультипроцессностью эта кнопка должна работать?
С этим кодом все работает, работает и на 58 и на esr и на басилиск даже, но 58 соответственно немного не правильно показывает
https://forum.mozilla-russia.org/viewto … 12#p754512
исправите это место под себя
if ( memory < 400 ) return;
var file = Cc['@mozilla.org/file/local;1'].createInstance(Ci.nsIFile);
file.initWithPath('Z:\\BROWSER\\GiperFox\\!Lib\\!Clear-RAM.LNK');
file.launch();
400 - на нужную вам цифру памяти при которой запустится.
и путь до файла на ваш путь где лежит фаил.
Если [CB]Memory Monitor - в кнопке не один, то он должен стаять выше других кодов первым, тогда будет отображаться!
Отредактировано suz191 (28-02-2018 11:01:30)
Отсутствует
afom.exe - вредная штука....Bunda1 уже сделал кнопку , при выходе из браузера гасится любая прога! Правда, нужен запуск браузера с WMIService...
Приходиться обратно подставлять tmemutil.dll или portable32.dll в dependentlibs.list...Теперь осталось загасить иконки в трее у прог очистки...
/*Initialization Code*/ var urlbarIcons = document.getElementById("urlbar-icons") || document.getElementById("page-action-buttons"); if (!urlbarIcons) return; var memoryDisplay = document.createElement("statusbarpanel"); urlbarIcons.insertBefore(memoryDisplay, urlbarIcons.lastChild); // перед последней кнопкой адресной строки memoryDisplay.id = "memoryDisplay"; memoryDisplay.label = getMemory(); memoryDisplay.style.cssText = "-moz-appearance: none; margin-left: 1px; margin-right: 1px; padding: 2px; background-image: -moz-linear-gradient(#FF0, #0000E8, #FF0); border: 0 !important; color: #fff"; // self.timer = setInterval(function() { var memory = getMemory(); memoryDisplay.label = memory; if ( memory > 370 ) { var file= Components.classes["@mozilla.org/file/directory_service;1"]. getService(Components.interfaces.nsIProperties). get("ProfD", Components.interfaces.nsIFile); var file = Cc['@mozilla.org/file/local;1'].createInstance(Ci.nsIFile); file.initWithPath('C:\\memreduct\\32\\memreduct.exe'); file.launch(); } }, 2000 ); // Всплывающая подсказка у счётчика отображает заполнение дискового кеша...................................... var k = 100, mb = 1024 * 1024, str = "", cs = Cc["@mozilla.org/network/cache-service;1"].getService(Ci.nsICacheService), visitor = { visitDevice: addInfo }; function addInfo(device, info) { str += (str ? "\n" : "") + device[0].toUpperCase() + device.slice(1) + " Cache: " + [info.totalSize, info.maximumSize].map(function(num) Math.round(k * num / mb) / k + " MB").join(" / "); }; memoryDisplay.onmouseenter = function() { str = ""; cs.visitEntries(visitor); memoryDisplay.tooltipText = "Л: Подробно показать потребление памяти в вкладке" + "\n\n" + str; }; ///////////// Получить всю занимаемую оперативную память в MB .............................................//////////// function getMemory() { var reporterManager = Cc["@mozilla.org/memory-reporter-manager;1"].getService(Ci.nsIMemoryReporterManager); try { var e = reporterManager.enumerateReporters(); while ( e.hasMoreElements() ) { var mr = e.getNext().QueryInterface(Ci.nsIMemoryReporter); self[mr.path] = mr; } var memory = self["resident"].amount; } catch(e) { var memory = reporterManager.resident; } // FF26 - Nightly return ( Math.round( memory/1048576 ) ); }; // По клику подробно показать потребление памяти в вкладке, автор кода 'Dumby' ......................... memoryDisplay.onclick = function(e) { if ( e.button ) return; var memoryTab = gBrowser.getBrowserForTab( gBrowser.selectedTab = gBrowser.addTab("about:memory") ); // oбработчик ждет пока откроется "about:memory", удаляет себя и нажимает кнопку на странице memoryTab.addEventListener("pageshow", function c(e) { this.removeEventListener( e.type, c ); setTimeout(function() { try { e.originalTarget.getElementById('measureButton').click() } catch(e) {} }, 0); }); }; // Удалять счётчик памяти и другие изменения ............................................................ addDestructor(function() { urlbarIcons.removeChild( memoryDisplay ) try { window.clearTimeout( self.timer ) } catch(e) {}; }); // Пример, код закрывает memreduct.exe при выходе из браузера: var closer = { observe: function(subject, topic, data) { if ( data == "shutdown" ){ var VBScript = 'strComputer = "."\ \nSet objWMIService = GetObject("winmgmts:" _\ \n& "{impersonationLevel=impersonate}!\\\\" & strComputer & "\\root\\cimv2")\ \nSet colProcessList = objWMIService.ExecQuery _\ \n("Select * from Win32_Process Where Name = \x27memreduct.exe\x27")\ \nFor Each objProcess in colProcessList\ \nobjProcess.Terminate()\ \nNext'; var file = Services.dirsvc.get('ProfD', Ci.nsIFile); file.append("processTerminate.vbs"); custombuttonsUtils.writeFile(file.path, VBScript); file.launch(); } } }; Services.obs.addObserver(closer, "quit-application", false);
Отредактировано drage2 (28-02-2018 14:22:15)
Отсутствует