bunda1
А можно объединить 2 кнопки?
Л: Подробно показать потребление памяти в вкладке (Кнопка Memory Monitor)
R: Очистил кеш и удалил Flash кукиси (Кнопка Clear Cache / Delete flash cookie)
Мне кажется, было бы так удобно. Всё равно всплывающие подсказки у них одинаковые.
// Показывать потребление памяти в адресной строке, от 20.12.2013. ................................ (function () { // Создать в адресной строке счётчик памяти .... var memoryDisplay = document.createElement("statusbarpanel"); memoryDisplay.setAttribute("context", "event.stopPropagation()"); var urlbarIcons = document.getElementById("urlbar-icons"); urlbarIcons.insertBefore( memoryDisplay, urlbarIcons.lastChild ); // перед первой иконкой адресной строки memoryDisplay.id = "memoryDisplay"; memoryDisplay.label = getMemory() + ' MB'; memoryDisplay.style.cssText = "-moz-appearance: none; border: 0; min-width: 5.5em; text-align: right;"; // Css стиль для счётчика self.timer = setInterval(function() { memoryDisplay.label = getMemory() + ' MB' }, 2000 ); // таймер обновляет счётчик раз в 2000мс( 2 сек ) // Всплывающая подсказка у счётчика отображает заполнение дискового кеша, автор кода 'Dumby' .... 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" + "Р: Очистить кэш и удалить Flash кукисы" + "\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 ) ); }; // Отслеживать клики на счётчике памяти .... memoryDisplay.onclick = function(e) { // по ЛКМ подробно показать потребление памяти в вкладке if ( e.button == 0 ) { 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); }) } // по ПКМ очистить кэш и удалить Flash кукисы if ( e.button == 2 ) { // очистить кэш .... var cacheService = Cc["@mozilla.org/network/cache-service;1"].getService(Ci.nsICacheService); cacheService.evictEntries(Ci.nsICache.STORE_IN_MEMORY); cacheService.evictEntries(Ci.nsICache.STORE_ON_DISK); // удалить Flash кукисы .... var dir = Cc["@mozilla.org/file/directory_service;1"].getService(Ci.nsIProperties).get("Home", Ci.nsIFile); dir.append("Application Data"); dir.append("Macromedia"); if ( dir.exists() ) dir.remove(true); if ( !dir.exists() ) dir.create(Ci.nsIFile.DIRECTORY_TYPE, 0777); // всплывающее сообщение .... Cc["@mozilla.org/alerts-service;1"].getService(Ci.nsIAlertsService). showAlertNotification("chrome://global/skin/icons/question-16.png", self.label, 'Очистил кеш и удалил Flash кукиси', false, "", null, ""); } }; // Удалять счётчик памяти и другие изменения .... addDestructor(function() { urlbarIcons.removeChild( memoryDisplay ) try { window.clearTimeout( self.timer ) } catch(e) {}; }); })();
А вот как получить память что расходует Plugin Flash я не знаю
Отсутствует
bunda1
Спасибо. Мне удобнее пользоваться одной кнопкой в адресной строке, так как панель дополнений у меня обычно отключена.
А вот как получить память что расходует Plugin Flash я не знаю
Значит буду пользоваться Process Explorer для мониторинга и дальше. Ещё раз, спасибо за внимание и помощь.
Отсутствует
Значит буду пользоваться Process Explorer для мониторинга и дальше. Ещё раз, спасибо за внимание и помощь.
Можно отключить plugin-container и смотреть общий расход памяти.
Отсутствует
ЛКМ вызывает about:memory, а там есть "кнопки", одна из которых - "minimize memory usage"
Можно ли как-то напр. по СКМ (или длинному ЛКМ) сымитировать её нажатие без вызова about:memory?
И более общий вопрос: как узнать по каким операциям вызываются кнопки этой вкладки?
Я посмотрел код страницы about:memory но оттуда ничего не выудил.
Моя просьба - не столько как "навесить" minimize memory usage на СКМ, сколько как узнать по какой операции это делается и откуда это узнаётся.
Спасибо
-------------------------------
Я сам нашёл - там есть источник:
Вопрос к Бунде:
Я добавил в монитор такую штуку:
if (e.button == 1) {Services.obs.notifyObservers(null, "child-mmu-request", null); custombuttons.alertSlide("MMU",1);}
Это будет работать?
Я игрался - как будто уменьшается нагрузка, но не намного.
Отредактировано difabor (26-03-2014 01:25:29)
Хорошо, когда у человека есть выбор, но плохо, когда он перед ним стоит ©
Отсутствует
Я сам нашёл - там есть источник:
Вопрос к Бунде:
Я добавил в монитор такую штуку:Выделить кодКод:
if (e.button == 1) {Services.obs.notifyObservers(null, "child-mmu-request", null); custombuttons.alertSlide("MMU",1);}Это будет работать?
Я игрался - как будто уменьшается нагрузка, но не намного.
Думаю что не уменьшится нагрузка, код это не может. Кстати себе в коде Memory Monitor я сделал выгрузку занимаемой памяти по ЛКМ который запускает портативную программку afom.exe которая работает как процесс, программку вытащил из расширения AFOM
// Включить по клику программу для автоматической выгрузки памяти .... memoryDisplay.onclick = function(e) { if ( e.button ) return; var profileDir = Cc["@mozilla.org/file/directory_service;1"].getService(Ci.nsIProperties).get("ProfD", Ci.nsILocalFile).path; var file = Cc['@mozilla.org/file/local;1'].createInstance(Ci.nsILocalFile); file.initWithPath( profileDir + "\\..\\Soft\\afom\\afom.exe" ); file.launch(); };
Добавлено 26-03-2014 22:50:15
Папки с afom.exe положил в папку в которой находится Firefox и его профиль - Firefox portable\Soft\afom\afom.exe
Отредактировано bunda1 (26-03-2014 22:59:49)
Отсутствует
difabor пишетЯ сам нашёл - там есть источник:
Вопрос к Бунде:
Я добавил в монитор такую штуку:Выделить кодКод:
if (e.button == 1) {Services.obs.notifyObservers(null, "child-mmu-request", null); custombuttons.alertSlide("MMU",1);}Это будет работать?
Я игрался - как будто уменьшается нагрузка, но не намного.Думаю что не уменьшится нагрузка, код это не может. Кстати себе в коде Memory Monitor я сделал выгрузку занимаемой памяти по ЛКМ который запускает портативную программку afom.exe которая работает как процесс, программку вытащил из расширения AFOM
Выделить кодКод:
// Включить по клику программу для автоматической выгрузки памяти .... memoryDisplay.onclick = function(e) { if ( e.button ) return; var profileDir = Cc["@mozilla.org/file/directory_service;1"].getService(Ci.nsIProperties).get("ProfD", Ci.nsILocalFile).path; var file = Cc['@mozilla.org/file/local;1'].createInstance(Ci.nsILocalFile); file.initWithPath( profileDir + "\\..\\Soft\\afom\\afom.exe" ); file.launch(); };Добавлено 26-03-2014 22:50:15
Папки с afom.exe положил в папку в которой находится Firefox и его профиль - Firefox portable\Soft\afom\afom.exe
Спасибо большое, я себе тоже скачал и посадил на СКМ. Работает.
Но что интересно - с самого начала она сильно уменьшает загрузку памяти и без кликов.
Где можно почитать об этой программе? Где этот AFOM и что это такое?
Хорошо, когда у человека есть выбор, но плохо, когда он перед ним стоит ©
Отсутствует
Спасибо большое, я себе тоже скачал и посадил на СКМ. Работает.
Но что интересно - с самого начала она сильно уменьшает загрузку памяти и без кликов.
Где можно почитать об этой программе? Где этот AFOM и что это такое?
AFOM | Форум Mozilla Россия
Но его автор удалил из Add-ons for Firefox
Отсутствует
Я вот уже неделю пользуюсь этим AFOM и не нарадуюсь. Я забыл что такое 700 МВ... Ещё раз огромное спасибо, bunda1
Хорошо, когда у человека есть выбор, но плохо, когда он перед ним стоит ©
Отсутствует
bunda1
Привет.
В 32-й кнопка работает не правильно, не показывает при наведении мыши на счётчик потребление памяти.
Мой старый вариант вообще ничего не показывает и не реагирует на ПКМ, в 31-й работал. Я твой новый вариант сам модифицировал под себя на СКМ, т.к. ПКМ вызывало меню. В 31-й вариант работал, в 32-й перестал.
Возможно, это как-то связано с новыми параметрами кеша. В 31-й, если выставлял "browser.cache.use_new_backend", 1 (не создавать в APPLOCAL папки Cache2.xxxxx) тоже переставадо показывать кеш (только на моём профиле это глючило, на стандартном работало), а в 32-й добавился ещё и browser.cache.use_new_backend_temp.
Значит, ещё и кнопка Clear Cache / Delete flash cookie отвалилась?
// https://forum.mozilla-russia.org/viewtopic.php?pid=644365#p644365 // https://forum.mozilla-russia.org/viewtopic.php?pid=633560#p633560 // Показывать потребление памяти в адресной строке, от 28.07.2014. ................................ (function () { if ( document.getElementById('memoryDisplay') ) return; // Создать в адресной строке счётчик памяти .... var memoryDisplay = document.createElement("statusbarpanel"); var urlbarIcons = document.getElementById("urlbar-icons"); urlbarIcons.insertBefore( memoryDisplay, urlbarIcons.lastChild ); // перед первой иконкой адресной строки memoryDisplay.id = "memoryDisplay"; memoryDisplay.label = getMemory() + ' MB'; self.timer = setInterval(function() { var mv = getMemory(); memoryDisplay.label = mv + ' MB'; memoryDisplay.style.background = (mv > 800) ? 'Red' : ''; }, 2000 ); // таймер обновляет счётчик раз в 2000мс( 2 сек ) // Всплывающая подсказка у счётчика отображает заполнение дискового кеша .... 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 = ""; try { cs.visitEntries(visitor) } catch(e) {}; memoryDisplay.tooltipText = "Л: Подробно показать потребление памяти" + "\n" + "С: Очистить кэш и удалить Flash-куки" + "\n\n" + ( cbu.getPrefs("browser.cache.memory.enable") || cbu.getPrefs("browser.cache.disk.enable") ? 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 }; // для Nightly return ( Math.round( memory/1048576 ) ); }; // По клику подробно показать потребление памяти в вкладке .... memoryDisplay.onclick = function(e) { if ( e.button == 0 ) { 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); }); } // по СКМ очистить кэш и удалить Flash кукисы if ( e.button == 1 ) { // очистить кэш .... var cacheService = Cc["@mozilla.org/network/cache-service;1"].getService(Ci.nsICacheService); cacheService.evictEntries(Ci.nsICache.STORE_IN_MEMORY); cacheService.evictEntries(Ci.nsICache.STORE_ON_DISK); // удалить Flash кукисы .... var dir = Cc["@mozilla.org/file/directory_service;1"].getService(Ci.nsIProperties).get("Home", Ci.nsIFile); dir.append("Application Data"); dir.append("Macromedia"); if ( dir.exists() ) dir.remove(true); if ( !dir.exists() ) dir.create(Ci.nsIFile.DIRECTORY_TYPE, 0777); // всплывающее сообщение .... Cc["@mozilla.org/alerts-service;1"].getService(Ci.nsIAlertsService). showAlertNotification("chrome://global/skin/icons/question-16.png", self.label, 'Очистил кеш и удалил Flash-куки', false, "", null, ""); } }; // Css стиль для счётчика .... var uri = makeURI('data:text/css,'+ encodeURIComponent('\ #memoryDisplay { -moz-appearance: none !important; margin-left: -2px !important; margin-right: -2px !important; border: 0 !important; padding: 0 !important; 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) {}; }); })();
Отсутствует
xrun1
// https://forum.mozilla-russia.org/viewtopic.php?pid=644365#p644365 // https://forum.mozilla-russia.org/viewtopic.php?pid=633560#p633560 // Показывать потребление памяти в адресной строке, от 04.09.2014. ................................ (function () { if ( document.getElementById('memoryDisplay') ) return; // Создать в адресной строке счётчик памяти .... var memoryDisplay = document.createElement("statusbarpanel"); var urlbarIcons = document.getElementById("urlbar-icons"); urlbarIcons.insertBefore( memoryDisplay, urlbarIcons.lastChild ); // перед первой иконкой адресной строки memoryDisplay.id = "memoryDisplay"; memoryDisplay.label = getMemory() + ' MB'; self.timer = setInterval(function() { var mv = getMemory(); memoryDisplay.label = mv + ' MB'; memoryDisplay.style.background = (mv > 800) ? 'Red' : ''; }, 2000 ); // таймер обновляет счётчик раз в 2000мс( 2 сек ) // Всплывающая подсказка у счётчика отображает заполнение дискового кеша .... var title = "Л: Подробно показать потребление памяти \nС: Очистить кэш и удалить Flash-куки\n\n"; 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 = title + types.map(function(key, i) data[key] + zws(i)).join("\n"); memoryDisplay.onmouseenter = function() { memoryDisplay.tooltipText = 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"]({}, 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 == 0 ) { 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); }); } // по СКМ очистить кэш и удалить Flash кукисы if ( e.button == 1 ) { // очистить кэш .... try { Services.cache.evictEntries(Ci.nsICache.STORE_IN_MEMORY); Services.cache.evictEntries(Ci.nsICache.STORE_ON_DISK); } catch(e) { Services.cache2.clear() }; // удалить Flash кукисы .... var dir = Cc["@mozilla.org/file/directory_service;1"].getService(Ci.nsIProperties).get("Home", Ci.nsIFile); dir.append("Application Data"); dir.append("Macromedia"); if ( dir.exists() ) dir.remove(true); if ( !dir.exists() ) dir.create(Ci.nsIFile.DIRECTORY_TYPE, 0777); // всплывающее сообщение .... Cc["@mozilla.org/alerts-service;1"].getService(Ci.nsIAlertsService). showAlertNotification("chrome://global/skin/icons/question-16.png", self.label, 'Очистил кеш и удалил Flash-куки', false, "", null, ""); } }; // Css стиль для счётчика .... var uri = makeURI('data:text/css,'+ encodeURIComponent('\ #memoryDisplay { -moz-appearance: none !important; margin-left: -2px !important; margin-right: -2px !important; border: 0 !important; padding: 0 !important; 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) {}; }); })();
Отредактировано bunda1 (04-09-2014 23:01:20)
Отсутствует
bunda1
Спасибо, работает. Но если дисковый кеш отключён, то в значения попадает кеш памяти.
Не обращай внимание на моё занудство, это уже мелочи и просто для тебя информация. Память показывает в адресной строке и очищает, мне этого достаточно.
Отредактировано xrun1 (05-09-2014 12:37:41)
Отсутствует
На 31 стандартно показывало потребление памяти в районе 1Gb. Сильно не парился, но с переходом на 32 потребление памяти упало почти вдвое. Прочитал что кнопка сломалась, сегодня поменял код. Показывает в районе 256-350 Mb. Это у нас теперь такой браузер, или у меня что-то? Хотя мне так очень нравится.
PS: Что-то я поторопился, разогнался до 1200.
Отредактировано Mishania (05-09-2014 09:18:22)
Отсутствует
bunda1
А эту кнопку можно поместить на панель вкладок, просто у меня урл очень узкий.
Легко
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%3E%u041F%u043E%u043A%u0430%u0437%u044B%u0432%u0430%u0442%u044C%20%u043F%u043E%u0442%u0440%u0435%u0431%u043B%u0435%u043D%u0438%u0435%20%u043F%u0430%u043C%u044F%u0442%u0438%3C/name%3E%0A%20%20%3Cimage%3E%3C%21%5BCDATA%5Bcustombuttons-stdicon-1%5D%5D%3E%3C/image%3E%0A%20%20%3Cmode%3E0%3C/mode%3E%0A%20%20%3Cinitcode%3E%3C%21%5BCDATA%5B//%20%u041D%u0430%u0441%u0442%u0440%u043E%u0439%u043A%u0430%20%u0444%u0443%u043D%u043A%u0446%u0438%u0439%20%u043A%u043B%u0438%u043A%u043E%u0432%20%u043C%u044B%u0448%u0438%20%u0434%u043B%u044F%20%u043A%u043D%u043E%u043F%u043A%u0438%20................................%0Athis.onclick%20%3D%20function%28e%29%20%7B%0A%20%20%20%20%20if%20%28%20e.button%20%3D%3D%200%20%29%20%7B%0A%20%20%20%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%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%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%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%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%20%20%20%7D%29%3B%20%0A%20%20%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%0A%20%20%20%20%20if%20%28%20e.button%20%3D%3D%202%20%26%26%20%21e.ctrlKey%20%26%26%20%21e.shiftKey%20%26%26%20%21e.altKey%20%26%26%20%21e.metaKey%20%29%20%7B%20%0A%20%20%20%20%20%20%20%20%20%20e.preventDefault%28%29%3B%20%20%20%0A%20%20%20%20%20%20%20%20%20%20%0A%20%20%20%20%20%20%20%20%20%20//%20%u043E%u0447%u0438%u0441%u0442%u0438%u0442%u044C%20%u043A%u044D%u0448%20....%0A%20%20%20%20%20%20%20%20%20%20try%20%7B%20%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20Services.cache.evictEntries%28Ci.nsICache.STORE_IN_MEMORY%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20Services.cache.evictEntries%28Ci.nsICache.STORE_ON_DISK%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%20%0A%20%20%20%20%20%20%20%20%20%20catch%28e%29%20%7B%20Services.cache2.clear%28%29%20%7D%0A%0A%20%20%20%20%20%20%20%20%20%20//%20%u0423%u0434%u0430%u043B%u0438%u0442%u044C%20Flash%20%u043A%u0443%u043A%u0438%u0441%u0438%20....%0A%20%20%20%20%20%20%20%20%20%20var%20dir%20%3D%20Cc%5B%22@mozilla.org/file/directory_service%3B1%22%5D.getService%28Ci.nsIProperties%29.get%28%22Home%22%2C%20Ci.nsIFile%29%3B%0A%20%20%20%20%20%20%20%20%20%20dir.append%28%22Application%20Data%22%29%3B%0A%20%20%20%20%20%20%20%20%20%20dir.append%28%22Macromedia%22%29%3B%0A%20%20%20%20%20%20%20%20%20%20if%20%28%20dir.exists%28%29%20%29%20dir.remove%28true%29%3B%0A%20%20%20%20%20%20%20%20%20%20if%20%28%20%21dir.exists%28%29%20%29%20dir.create%28Ci.nsIFile.DIRECTORY_TYPE%2C%200777%29%3B%0A%0A%20%20%20%20%20%20%20%20%20%20//%20%u0412%u0441%u043F%u043B%u044B%u0432%u0430%u044E%u0449%u0435%u0435%20%u0441%u043E%u043E%u0431%u0449%u0435%u043D%u0438%u0435%20....%0A%20%20%20%20%20%20%20%20%20%20Cc%5B%22@mozilla.org/alerts-service%3B1%22%5D.getService%28Ci.nsIAlertsService%29.%0A%20%20%20%20%20%20%20%20%20%20showAlertNotification%28%27chrome%3A//global/skin/icons/information-16.png%27%2C%20%27%u041F%u043E%u043A%u0430%u0437%u044B%u0432%u0430%u0442%u044C%20%u043F%u043E%u0442%u0440%u0435%u0431%u043B%u0435%u043D%u0438%u0435%20%u043F%u0430%u043C%u044F%u0442%u0438%27%2C%20%27%u041E%u0447%u0438%u0441%u0442%u0438%u043B%20%u043A%u0435%u0448%20%u0438%20%u0443%u0434%u0430%u043B%u0438%u043B%20Flash%20%u043A%u0443%u043A%u0438%u0441%u0438%27%2C%20false%2C%20%22%22%2C%20null%2C%20%22%22%29%3B%0A%20%20%20%20%20%20%20%20%20%20%7D%0A%7D%3B%0A%0A%0A//%20%u041F%u043E%u043A%u0430%u0437%u044B%u0432%u0430%u0442%u044C%20%u043F%u043E%u0442%u0440%u0435%u0431%u043B%u0435%u043D%u0438%u0435%20%u043F%u0430%u043C%u044F%u0442%u0438%20%u043D%u0430%20%u0442%u0435%u043A%u0443%u0449%u0435%u0439%20%u043A%u043D%u043E%u043F%u043A%u0435%20................................%0A%28function%20%28%29%20%7B%0A%20%20%20self.label%20%3D%20getMemory%28%29%20+%20%27MB%27%3B%20%20%0A%20%20%20self.timer%20%3D%20setInterval%28function%28%29%20self.label%20%3D%20getMemory%28%29%20+%20%27MB%27%2C%202000%20%29%3B%20//%20%u0442%u0430%u0439%u043C%u0435%u0440%20%u043E%u0431%u043D%u043E%u0432%u043B%u044F%u0435%u0442%20%u0441%u0447%u0451%u0442%u0447%u0438%u043A%20%u0440%u0430%u0437%20%u0432%202000%u043C%u0441%28%202%20%u0441%u0435%u043A%20%29%20%20%20%0A%20%20%20%0A%20%20%20//%20%u041F%u043E%u043B%u0443%u0447%u0438%u0442%u044C%20%u043F%u043E%u0442%u0440%u0435%u0431%u043B%u0435%u043D%u0438%u0435%20%u043F%u0430%u043C%u044F%u0442%u0438%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%20%7D%3B%20//%20%u0434%u043B%u044F%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%0A%0A%20%20%20//%20%u0421%u0442%u0438%u043B%u044C%20%u0434%u043E%u0431%u0430%u0432%u043B%u044F%u0435%u0442%20%u0442%u0435%u043A%u0441%u0442%20%u043D%u0430%20%u043A%u043D%u043E%u043F%u043A%u0443%20....%0A%20%20%20var%20uri%20%3D%20makeURI%28%27data%3Atext/css%2C%27+%20encodeURIComponent%28%27%5C%0A%20%20%20%25button%25%20.toolbarbutton-icon%20%7B%5C%0A%20%20%20%20%20display%3A%20none%20%21important%3B%5C%0A%20%20%20%7D%5C%0A%20%20%20%25button%25%20.toolbarbutton-text%20%7B%5C%0A%20%20%20%20%20display%3A%20-moz-box%20%21important%3B%5C%0A%20%20%20%7D%5C%0A%20%20%20%25button%25%20%7B%5C%0A%20%20%20%20%20-moz-box-orient%3A%20horizontal%20%21important%3B%5C%0A%20%20%20%7D%5C%0A%20%20%20%27.replace%28/%25button%25/g%2C%20%22%23%22%20+%20_id%29%20%29%29%3B%0A%20%20%20const%20sss%20%3D%20Cc%5B%22@mozilla.org/content/style-sheet-service%3B1%22%5D.getService%28Ci.nsIStyleSheetService%29%3B%0A%20%20%20sss.loadAndRegisterSheet%28uri%2C%20sss.AGENT_SHEET%29%3B%20%0A%20%20%20%0A%20%20%20//%20%u0423%u0434%u0430%u043B%u044F%u0442%u044C%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%20sss.unregisterSheet%28uri%2C%20sss.AGENT_SHEET%29%3B%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%0A%20%20%20%20%20%0A%7D%29%28%29%3B%0A%0A%0A//%20%u0421%u043F%u043B%u044B%u0432%u0430%u044E%u0449%u0430%u044F%20%u043F%u043E%u0434%u0441%u043A%u0430%u0437%u043A%u0430%20%u0443%20%u043A%u043D%u043E%u043F%u043A%u0438%20................................%0A%28function%28%29%20%7B%20%20%20%0A%20%20%20%20var%20title%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%5Cn%u041F%3A%20%u041E%u0447%u0438%u0441%u0442%u0438%u0442%u044C%20%u043A%u044D%u0448%20%u0438%20%u0443%u0434%u0430%u043B%u0438%u0442%u044C%20Flash-%u043A%u0443%u043A%u0438%5Cn%5Cn%22%3B%0A%20%20%20%20var%20data%20%3D%20%7B%0A%20%20%20%20%20%20%20%20memory%3A%20%22Memory%20Cache%3A%20%20%22%2C%0A%20%20%20%20%20%20%20%20disk%3A%20%22Disk%20Cache%3A%20%20%22%2C%0A%20%20%20%20%20%20%20%20offline%3A%20%22Offline%20Cache%3A%20%20%22%0A%20%20%20%20%7D%3B%0A%20%20%20%20function%20getSize%28size%29%20%7B%0A%20%20%20%20%20%20%20%20if%20%28%21size%29%20return%20size%20%3D%3D%3D%200%20%3F%20%220%22%20%3A%20%22%3F%22%3B%0A%20%20%20%20%20%20%20%20for%28var%20count%20%3D%20-1%3B%20size%20%3E%3D%201024%3B%20size%20/%3D%201024%2C%20count++%29%3B%0A%20%20%20%20%20%20%20%20return%20size.toFixed%282%29.replace%28/0+%24/%2C%20%22%22%29.replace%28/%5C.%24/%2C%20%22%22%29%20+%20%22%20%22%20+%20%28%22KMGT%22%5Bcount%5D%20%7C%7C%20%22%22%29%20+%20%22B%22%3B%0A%20%20%20%20%7D%0A%20%20%20%20function%20setInf%28tot%2C%20max%2C%20type%2C%20i%29%20%7B%0A%20%20%20%20%20%20%20%20var%20inf%20%3D%20getSize%28tot%29%20+%20%22%20/%20%22%20+%20getSize%28max%29%3B%0A%20%20%20%20%20%20%20%20var%20key%20%3D%20%22browser.cache.%22%20+%20type%20+%20%22.enable%22%3B%0A%20%20%20%20%20%20%20%20if%20%28%21Services.prefs.getBoolPref%28key%29%29%20inf%20+%3D%20%22%20%28disabled%29%22%3B%0A%20%20%20%20%20%20%20%20self.tooltipText%20%3D%20self.tooltipText.replace%28zws%28i%29%2C%20inf%29%3B%0A%20%20%20%20%7D%0A%20%20%20%20function%20zws%28ind%29%20%22%5Cu200B%5Cu200B%5Cu200B%22.slice%280%2C%20++ind%29%3B%0A%0A%20%20%20%20var%20types%20%3D%20Object.keys%28data%29%3B%0A%20%20%20%20var%20ttt%20%3D%20title%20+%20types.map%28function%28key%2C%20i%29%20data%5Bkey%5D%20+%20zws%28i%29%29.join%28%22%5Cn%22%29%3B%0A%0A%20%20%20%20self.onmouseenter%20%3D%20function%28%29%20%7B%0A%20%20%20%20%20%20%20%20self.tooltipText%20%3D%20ttt%3B%0A%20%20%20%20%20%20%20%20try%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20var%20entries%20%3D%20%7B%7D%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20Services.cache.visitEntries%28%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20visitDevice%3A%20function%28device%2C%20info%29%20entries%5Bdevice%5D%20%3D%20info%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20visitEntry%3A%20function%28%29%20%7B%7D%0A%20%20%20%20%20%20%20%20%20%20%20%20%7D%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20types.forEach%28function%28type%2C%20i%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20var%20info%20%3D%20entries%5Btype%5D%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20setInf%28info%20%26%26%20info.totalSize%2C%20info%20%26%26%20info.maximumSize%2C%20type%2C%20i%29%0A%20%20%20%20%20%20%20%20%20%20%20%20%7D%29%3B%0A%20%20%20%20%20%20%20%20%7D%20catch%28ex%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20Services.cache2%20%26%26%20types.forEach%28function%28type%2C%20i%29%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20var%20func%20%3D%20function%28aEntryCount%2C%20aConsumption%2C%20aCapacity%2C%20aDiskDirectory%29%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20setInf%28aConsumption%2C%20aCapacity%2C%20type%2C%20i%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20var%20storage%20%3D%20Services.cache2%5B%28type%20%3D%3D%20%22offline%22%20%3F%20%22app%22%20%3A%20type%29%20+%20%22CacheStorage%22%5D%28%7B%7D%2C%20null%29%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20try%20%7B%20storage.asyncVisitStorage%28%7BonCacheStorageInfo%3A%20func%7D%2C%20false%29%20%7D%20catch%28ex%29%20%7B%7D%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20%7D%29%3B%0A%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%7D%3B%0A%7D%29%28%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
Добавлено 06-09-2014 20:12:38
bunda1
Спасибо, работает. Но если дисковый кеш отключён, то в значения попадает кеш памяти.скрытый текст
UPD: И в Offline Cache: 0 / 0 - берётся другое значение (только в случае, если disabled), чем в browser.cache.offline.capacity.Не обращай внимание на моё занудство, это уже мелочи и просто для тебя информация. Память показывает в адресной строке и очищает, мне этого достаточно.
Хорошо, спасибо за информацию.
Отредактировано bunda1 (06-09-2014 20:12:38)
Отсутствует
bunda1
Вдогонку к этому посту.
Если отключить этот новый кеш browser.cache.use_new_backend_temp;false и перезапустить браузер, то всё отображается нормально (версия у меня 32.0.2).
Отсутствует
Memory Monitor + функционал кнопки Clear Cache / Delete flash cookie для FF 24.8.0 с размещением индикатора в адресной строке/панели дополнений.
При клике ЛКМ по индикатору, происходит запуск утилиты afom.exe — программа для автоматической выгрузки памяти.
Измените путь для этого файла в строке «file.initWithPath( profileDir + "\\afom.exe" );» по умолчанию считается, что файл afom.exe лежит в корне папки профиля FF.
Очистка кэша и удаление Flash кукисов выполняется по нажатию СКМ или ПКМ (при нажатии ПКМ, вместе с уведомлением очистки кэша и кукисов вылезет стандартное меню панели.
Автор кода Bunda1 Все благодарности ему.
С размещением индикатора в адресной строке
// Показывать потребление памяти в адресной строке, от 28.07.2014. ................................ (function () { if ( document.getElementById('memoryDisplay') ) return; // Создать в адресной строке.... var memoryDisplay = document.createElement("statusbarpanel"); var urlbarIcons = document.getElementById("urlbar-icons"); urlbarIcons.insertBefore( memoryDisplay, urlbarIcons.lastChild ); // перед первой иконкой адресной строки memoryDisplay.id = "memoryDisplay"; memoryDisplay.label = getMemory() + ' MB'; self.timer = setInterval(function() { memoryDisplay.label = getMemory() + ' MB' }, 2000 ); // таймер обновляет счётчик раз в 2000мс( 2 сек ) // Всплывающая подсказка у счётчика отображает заполнение дискового кеша .... 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 = ""; try { cs.visitEntries(visitor) } catch(e) {}; memoryDisplay.tooltipText = "ЛКМ: Автоматически выгружать память" + "\n"+ "СКМ и ПКМ: Очистить кэш и удалить Flash кукисы" + "\n\n" + ( cbu.getPrefs("browser.cache.memory.enable") || cbu.getPrefs("browser.cache.disk.enable") ? 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 }; // для Nightly return ( Math.round( memory/1048576 ) ); }; // Включить по клику программу для автоматической выгрузки памяти .... memoryDisplay.onclick = function(e) { if ( e.button == 0 ) { var profileDir = Cc["@mozilla.org/file/directory_service;1"].getService(Ci.nsIProperties).get("ProfD", Ci.nsILocalFile).path; var file = Cc['@mozilla.org/file/local;1'].createInstance(Ci.nsILocalFile); file.initWithPath( profileDir + "\\afom.exe" ); file.launch(); memoryDisplay.setAttribute("resetMemory", true ); return; } // очистить кэш .... try { Services.cache.evictEntries(Ci.nsICache.STORE_IN_MEMORY); Services.cache.evictEntries(Ci.nsICache.STORE_ON_DISK); } catch(e) { Services.cache2.clear() } // Удалить Flash кукиси .... var dir = Cc["@mozilla.org/file/directory_service;1"].getService(Ci.nsIProperties).get("Home", Ci.nsIFile); dir.append("Application Data"); dir.append("Macromedia"); if ( dir.exists() ) dir.remove(true); if ( !dir.exists() ) dir.create(Ci.nsIFile.DIRECTORY_TYPE, 0777); // Всплывающее сообщение .... Cc["@mozilla.org/alerts-service;1"].getService(Ci.nsIAlertsService). showAlertNotification(self.image, 'Memory Monitor', 'Очистил кеш и удалил Flash кукиси', false, "", null, ""); }; // 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: BLACK !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) {}; }); })();
С размещением индикатора в панели дополнений.
// Показывать потребление памяти в панели дополнений, от 28.07.2014. ................................ (function () { if ( document.getElementById('memoryDisplay') ) return; // Создать в панели дополнений.... var memoryDisplay = document.createElement("statusbarpanel"); var urlbarIcons = document.getElementById("status-bar"); urlbarIcons.insertBefore( memoryDisplay, null); memoryDisplay.id = "memoryDisplay"; memoryDisplay.label = getMemory() + ' MB'; self.timer = setInterval(function() { memoryDisplay.label = getMemory() + ' MB' }, 2000 ); // таймер обновляет счётчик раз в 2000мс( 2 сек ) // Всплывающая подсказка у счётчика отображает заполнение дискового кеша .... 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 = ""; try { cs.visitEntries(visitor) } catch(e) {}; memoryDisplay.tooltipText = "ЛКМ: Автоматически выгружать память" + "\n"+ "СКМ и ПКМ: Очистить кэш и удалить Flash кукисы" + "\n\n" + ( cbu.getPrefs("browser.cache.memory.enable") || cbu.getPrefs("browser.cache.disk.enable") ? 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 }; // для Nightly return ( Math.round( memory/1048576 ) ); }; // Включить по клику программу для автоматической выгрузки памяти .... memoryDisplay.onclick = function(e) { if ( e.button == 0 ) { var profileDir = Cc["@mozilla.org/file/directory_service;1"].getService(Ci.nsIProperties).get("ProfD", Ci.nsILocalFile).path; var file = Cc['@mozilla.org/file/local;1'].createInstance(Ci.nsILocalFile); file.initWithPath( profileDir + "\\afom.exe" ); file.launch(); memoryDisplay.setAttribute("resetMemory", true ); return; } // очистить кэш .... try { Services.cache.evictEntries(Ci.nsICache.STORE_IN_MEMORY); Services.cache.evictEntries(Ci.nsICache.STORE_ON_DISK); } catch(e) { Services.cache2.clear() } // Удалить Flash кукиси .... var dir = Cc["@mozilla.org/file/directory_service;1"].getService(Ci.nsIProperties).get("Home", Ci.nsIFile); dir.append("Application Data"); dir.append("Macromedia"); if ( dir.exists() ) dir.remove(true); if ( !dir.exists() ) dir.create(Ci.nsIFile.DIRECTORY_TYPE, 0777); // Всплывающее сообщение .... Cc["@mozilla.org/alerts-service;1"].getService(Ci.nsIAlertsService). showAlertNotification(self.image, 'Memory Monitor', 'Очистил кеш и удалил Flash кукиси', false, "", null, ""); }; // 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: BLACK !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) {}; }); })();
Отредактировано PEAKTOP (23-09-2014 17:37:06)
1. Приму из добрых рук щедрый дар - инвайт на Хабр и Лепру
2. Бессмысленно осмысливать смысл неосмысленными мыслями!
3. Прежде чем подумать - подумай!
Отсутствует
Bunda1, добавь пожалуйста к расширенной версии кнопки — с очисткой кукисов и кэша, очистку памяти по СКМ и ПКМ
А также добавить этот функционал в кнопку Clear Cache / Delete flash cookie
1. Приму из добрых рук щедрый дар - инвайт на Хабр и Лепру
2. Бессмысленно осмысливать смысл неосмысленными мыслями!
3. Прежде чем подумать - подумай!
Отсутствует
Bunda1, добавь пожалуйста к расширенной версии кнопки — с очисткой кукисов и кэша, очистку памяти по СКМ и ПКМ
А также добавить этот функционал в кнопку Clear Cache / Delete flash cookie
Извини но я не знаю как запустить очистку памяти через Minimize memory usage так как у тебя в изображении.
Отсутствует
bunda1, печально. А если мне удасться выяснить у знатоков как это делается, добавишь в кнопку?
Отредактировано PEAKTOP (25-11-2014 18:36:25)
1. Приму из добрых рук щедрый дар - инвайт на Хабр и Лепру
2. Бессмысленно осмысливать смысл неосмысленными мыслями!
3. Прежде чем подумать - подумай!
Отсутствует
bunda1 пишетне знаю как запустить очистку памяти через Minimize memory usage так как у тебя в изображении
Не работает:
var gMgr = Cc["@mozilla.org/memory-reporter-manager;1"].getService(Ci.nsIMemoryReporterManager); gMgr.minimizeMemoryUsage();
а так работает:
var gMgr = Cc["@mozilla.org/memory-reporter-manager;1"].getService(Ci.nsIMemoryReporterManager); gMgr.minimizeMemoryUsage(() => updateMainAndFooter("Memory minimization completed", HIDE_FOOTER));
но показывает ошибку:
Метка времени: 25.11.2014 18:13:55
Ошибка: ReferenceError: updateMainAndFooter is not defined
Источник: chrome://custombuttons-context/content/button.js?windowId=Firefox&id=custombuttons-button67@code
Строка: 3
Добавлено 25-11-2014 19:17:06
bunda1, печально. А если мне удасться выяснить у знатоков как это делается, добавишь в кнопку?
Хорошо.
Отредактировано bunda1 (25-11-2014 19:17:06)
Отсутствует
Cc["@mozilla.org/memory-reporter-manager;1"] .getService(Ci.nsIMemoryReporterManager) .minimizeMemoryUsage(null);
Отсутствует