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

Многие проблемы быстрее решаются поиском по форуму и чтением FAQ, чем созданием новой темы и томительным ожиданием ответа.

№20104-03-2017 22:38:10

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

Re: [CB]Memory Monitor

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

Отсутствует

 

№20210-12-2017 23:30:34

Viatcheslav
Участник
 
Группа: Members
Откуда: г. Бобруйск, Беларусь
Зарегистрирован: 23-11-2016
Сообщений: 42
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
Сообщений: 93
UA: unknown 0.0

Re: [CB]Memory Monitor

Viatcheslav

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

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

Отсутствует

 

№20412-12-2017 06:29:35

Viatcheslav
Участник
 
Группа: Members
Откуда: г. Бобруйск, Беларусь
Зарегистрирован: 23-11-2016
Сообщений: 42
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
Сообщений: 93
UA: unknown 0.0

Re: [CB]Memory Monitor

Viatcheslav
Ну тогда, не знаю слово за маэстро.
https://s8.hostingkartinok.com/uploads/images/2017/12/db11d6c708484cf159293fab03fc444e.png

Отсутствует

 

Board footer

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