Полезная информация

Будьте в курсе последних изменений в мире Mozilla, следя за нашим микроблогом в Twitter.

№20104-03-2017 22:38:10

mahtanoronra
Участник
 
Группа: Members
Зарегистрирован: 08-03-2009
Сообщений: 63
UA: Firefox 45.0

Re: [CB]Memory Monitor

bunda1
в подсказке исчезло переход в about:memory
но по нажатию работает) вообщем все ок спс)

Отсутствует

 

№20210-12-2017 23:30:34

Viatcheslav
Участник
 
Группа: Members
Откуда: г. Бобруйск, Беларусь
Зарегистрирован: 23-11-2016
Сообщений: 323
UA: Firefox 57.0

Re: [CB]Memory Monitor

Есть код кнопки из сообщения 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 - фиг с ним, если работать не будет. Главное - чтобы правильно показывал. Спасибо :blush:

Отсутствует

 

№20311-12-2017 23:57:22

broker
Участник
 
Группа: Members
Зарегистрирован: 23-06-2015
Сообщений: 103
UA: unknown 0.0

Re: [CB]Memory Monitor

Viatcheslav

2. После установки и второго перезапуска браузера (далее - постоянно) в адресной строке два одинаковых индикатора - один точно лишний :)

У вас установлено две кнопки аналогичные, посему двоит. Одну удалить.

Отсутствует

 

№20412-12-2017 06:29:35

Viatcheslav
Участник
 
Группа: Members
Откуда: г. Бобруйск, Беларусь
Зарегистрирован: 23-11-2016
Сообщений: 323
UA: Firefox 57.0

Re: [CB]Memory Monitor

broker пишет

У вас установлено две кнопки аналогичные, посему двоит. Одну удалить

Нет, кнопка одна. Но если её перенести в расширенное меню - индикатор "раздваивается" (хотел, чтобы кнопки не было видно). Когда кнопка на панели инструментов - нормально, но показания... :usch:

Отредактировано Viatcheslav (12-12-2017 06:30:21)

Отсутствует

 

№20512-12-2017 17:39:17

broker
Участник
 
Группа: Members
Зарегистрирован: 23-06-2015
Сообщений: 103
UA: unknown 0.0

Re: [CB]Memory Monitor

Viatcheslav
Ну тогда, не знаю слово за маэстро.
db11d6c708484cf159293fab03fc444e.png

Отсутствует

 

№20624-02-2018 16:39:30

suz191
Участник
 
Группа: Members
Зарегистрирован: 03-01-2017
Сообщений: 61
UA: Firefox 58.0

Re: [CB]Memory Monitor

Добрый день может ли кто-нибудь помочь внедрить в код условие...
Если цифра будет 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)

Отсутствует

 

№20724-02-2018 18:49:07

bunda1
Moderator
 
Группа: Moderators
Откуда: Латвия
Зарегистрирован: 09-02-2010
Сообщений: 4811
UA: Firefox 52.0

Re: [CB]Memory Monitor

suz191 пишет

Добрый день может ли кто-нибудь помочь внедрить в код условие...
Если цифра будет 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)

Отсутствует

 

№20824-02-2018 19:36:34

suz191
Участник
 
Группа: Members
Зарегистрирован: 03-01-2017
Сообщений: 61
UA: Firefox 58.0

Re: [CB]Memory Monitor

bunda1
Большое спасибо все работает в обоих.
Попробую сейчас по разбираться!
Да в 58 он не считает все процессы, а только один.
Просто у меня тот код кнопки с очисткой не работает в ESR, а этот работает и получилась каша...
Сам что-то не смог разобраться.
Попробую как-то объединить их, чтоб оба чистили и оба отображали хотя бы так.
Спасибо. :)

Отредактировано suz191 (24-02-2018 19:56:00)

Отсутствует

 

№20924-02-2018 21:04:52

difabor
Участник
 
Группа: Members
Зарегистрирован: 21-09-2013
Сообщений: 539
UA: Firefox 52.0
Веб-сайт

Re: [CB]Memory Monitor

suz191, a что это за файл: !Clear-RAM.LNK ?


Хорошо, когда у человека есть выбор, но плохо, когда он перед ним стоит ©

Отсутствует

 

№21024-02-2018 21:22:57

suz191
Участник
 
Группа: Members
Зарегистрирован: 03-01-2017
Сообщений: 61
UA: Firefox 58.0

Re: [CB]Memory Monitor

difabor пишет

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 и он очищает память по нажатию на клавиши

Умнее я выход пока не нашел :)

Как то-так :rolleyes:

Отсутствует

 

№21124-02-2018 22:04:46

difabor
Участник
 
Группа: Members
Зарегистрирован: 21-09-2013
Сообщений: 539
UA: Firefox 52.0
Веб-сайт

Re: [CB]Memory Monitor

Спасибо, suz191.
Как я понял, надо загрузить что-то, что обеспечивает запуск mem reduct и должен ещё быть hidcon.exe


Хорошо, когда у человека есть выбор, но плохо, когда он перед ним стоит ©

Отсутствует

 

№21224-02-2018 22:27:21

suz191
Участник
 
Группа: Members
Зарегистрирован: 03-01-2017
Сообщений: 61
UA: Firefox 58.0

Re: [CB]Memory Monitor

difabor пишет

Спасибо, suz191.
Как я понял, надо загрузить что-то, что обеспечивает запуск mem reduct и должен ещё быть hidcon.exe

hidcon.exe - это для невидимого на экране запуска... можно и без него! просто тогда будет видно как выполняется батник...
mem reduct - уже стоит в системе, работает и просто нужно нажать его горячие клавиши чтоб он сбросил память...
nircmd.exe - нажимает эти самые кнопки
если все сократить то просто требуется нажать кнопки ctrl+f1 в системе браузером в заданный момент, а чтоб их нажать не в окне браузера а именно в системе...
Я нашел только такой способ. Ну, и для очистки памяти браузера я тоже еще не нашел других способов - это показалось мне оптимальным при помощи Memory Monitor.
Не за что... Пока сам тестирую... :)

Отредактировано suz191 (24-02-2018 22:33:40)

Отсутствует

 

№21327-02-2018 12:00:36

drage2
Забанен
 
Группа: Members
Откуда: Донецк
Зарегистрирован: 23-11-2017
Сообщений: 392
UA: Seamonkey 2.53

Re: [CB]Memory Monitor

Любите господа огороды городить ....И memreduct и Mz Ultimate Tools работают без огородов и в мультирежиме тоже...
Ну, нет у memreduct  командой строки (ключа) , так и не надо, при запуске из кнопки она сразу чистит(проценты задаются в настройках)
А , вторая имеет функцию сразу оптимизировать...В мультирежиме - уменьшить память запуска в два раза. Прога чистит не память FF , а все процессы..

Отсутствует

 

№21427-02-2018 15:00:42

suz191
Участник
 
Группа: Members
Зарегистрирован: 03-01-2017
Сообщений: 61
UA: Firefox 58.0

Re: [CB]Memory Monitor

drage2 пишет

Любите господа огороды городить ....И 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)

Отсутствует

 

№21527-02-2018 17:28:50

drage2
Забанен
 
Группа: Members
Откуда: Донецк
Зарегистрирован: 23-11-2017
Сообщений: 392
UA: Seamonkey 2.53

Re: [CB]Memory Monitor

Да, уже...Прога очистки запускается при 400МГ и сама выключается при 100Мг . Еще надо и при выходе из браузера.

Отсутствует

 

№21627-02-2018 19:16:58

suz191
Участник
 
Группа: Members
Зарегистрирован: 03-01-2017
Сообщений: 61
UA: Firefox 58.0

Re: [CB]Memory Monitor

drage2 пишет

Да, уже...Прога очистки запускается при 400МГ и сама выключается при 100Мг . Еще надо и при выходе из браузера.

Что вы пытаетесь сделать? Зачем она у вас включается и два раза выключается?
Это системная программа запуск программ для работы с системой в партбл режиме - это поменьше мере не правильно...
Установите её в систему, а firefox заставьте нажимать через [CB]Memory Monitor кнопки ctrl+f1 при достижении определенного объема памяти.
400 - это мало скорее всего надо 500 потому, что esr например долбит систему каждые 20 секунд при 400.
На 450-500 вроде нормально.

Отредактировано suz191 (27-02-2018 19:26:45)

Отсутствует

 

№21727-02-2018 21:21:07

bunda1
Moderator
 
Группа: Moderators
Откуда: Латвия
Зарегистрирован: 09-02-2010
Сообщений: 4811
UA: Firefox 52.0

Re: [CB]Memory Monitor

drage2 пишет

Да, уже...Прога очистки запускается при 400МГ и сама выключается при 100Мг . Еще надо и при выходе из браузера.

Найди расширение Memory Fox Next и вытащи из него afom.exe она чистит только Firefox раз в минуту и отключается при выходе из браузера.

Отсутствует

 

№21827-02-2018 22:05:09

suz191
Участник
 
Группа: Members
Зарегистрирован: 03-01-2017
Сообщений: 61
UA: Firefox 58.0

Re: [CB]Memory Monitor

bunda1 пишет

Найди расширение Memory Fox Next и вытащи из него afom.exe она чистит только Firefox раз в минуту и отключается при выходе из браузера.

Большое спасибо очень полезно, по-моему даже меньше чем в минуту, да и закрывается сам...
Это вообще супер очистка какая-то :D Спасибо!

Отсутствует

 

№21928-02-2018 05:40:18

difabor
Участник
 
Группа: Members
Зарегистрирован: 21-09-2013
Сообщений: 539
UA: Firefox 52.0
Веб-сайт

Re: [CB]Memory Monitor

bunda1 пишет
drage2 пишет

Да, уже...Прога очистки запускается при 400МГ и сама выключается при 100Мг . Еще надо и при выходе из браузера.

Найди расширение Memory Fox Next и вытащи из него afom.exe она чистит только Firefox раз в минуту и отключается при выходе из браузера.

И как этот afom.exe "пришить" к браузеру?
Куда его поместить и где "прописать"?


Хорошо, когда у человека есть выбор, но плохо, когда он перед ним стоит ©

Отсутствует

 

№22028-02-2018 05:52:42

okkamas_knife
We are the Borg.       Resistance is futile.
 
Группа: Members
Зарегистрирован: 21-10-2009
Сообщений: 9558
UA: Seamonkey 2.14

Re: [CB]Memory Monitor

например №85


я помню те времена когда обновления программ убирали проблемы и исправляли баги, а не добавляли их.
toxID:05AB9B827D896AACEE7FF4573A02FB8F025F46ADC856B98F65BC1BA9BD21A81DC98BA9C36CE3

Отсутствует

 

№22128-02-2018 06:24:58

Viatcheslav
Участник
 
Группа: Members
Откуда: г. Бобруйск, Беларусь
Зарегистрирован: 23-11-2016
Сообщений: 323
UA: Firefox 57.0

Re: [CB]Memory Monitor

difabor пишет

И как этот 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


Порог сброса (if ( memory > 300 )) настраивал под себя с учётом неправильного отображения расхода памяти (увы, последствия включенной мультипроцессности [firefox]). Ссылка на загрузку файла Afom.exe - https://disk.karelia.pro/dvxnkR3/
А разместить его (Afom.exe) нужно в папке C:\Users\User_Name\AppData\Roaming\Mozilla\Firefox\Profiles\Profile_Name\Soft

Отсутствует

 

№22228-02-2018 07:37:55

Mishania
Забанен
 
Группа: Members
Откуда: Usa
Зарегистрирован: 22-10-2011
Сообщений: 357
UA: unknown 0.0

Re: [CB]Memory Monitor

Viatcheslav
А если профиль находится в другом месте? Исправил на

Выделить код

Код:

file.initWithPath(file.path + "V:\\Mozilla\\afom.exe");

Кнопка перестала работать.
А на 56ESR с отключённой мультипроцессностью эта кнопка должна работать?

Отредактировано Mishania (28-02-2018 07:54:16)

Отсутствует

 

№22328-02-2018 10:48:33

suz191
Участник
 
Группа: Members
Зарегистрирован: 03-01-2017
Сообщений: 61
UA: Firefox 58.0

Re: [CB]Memory Monitor

Mishania пишет

Кнопка перестала работать.А на 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)

Отсутствует

 

№22428-02-2018 14:03:29

drage2
Забанен
 
Группа: Members
Откуда: Донецк
Зарегистрирован: 23-11-2017
Сообщений: 392
UA: Firefox 57.0

Re: [CB]Memory Monitor

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)

Отсутствует

 

№22528-02-2018 14:29:17

difabor
Участник
 
Группа: Members
Зарегистрирован: 21-09-2013
Сообщений: 539
UA: Firefox 52.0
Веб-сайт

Re: [CB]Memory Monitor

okkamas_knife, Viatcheslav, спасибо!


Хорошо, когда у человека есть выбор, но плохо, когда он перед ним стоит ©

Отсутствует

 

Board footer

Powered by PunBB
Modified by Mozilla Russia
Copyright © 2004–2020 Mozilla Russia GitHub mark
Язык отображения форума: [Русский] [English]