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

В мире Mozilla происходит много интересных событий. Но вам не нужно постоянно посещать новостные сайты, чтобы быть в курсе всех изменений. Зайдите на ленту новостей Mozilla Россия.

№105-11-2011 20:00:35

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

[CB]Memory Monitor

Memory Monitor ( Firefox 17 + )
Автор: bunda1
Версия: от 28.07.2014.
Описание: Kод показывает в адресной строке расход оперативной памяти в Firefox, по клику на котором потребление памяти будет показана в вкладке подробно по элементам. Сплывающая подсказка у счётчика памяти отображает в MB максимально возможное и текущее заполнение дискового кеша, оффлайн кеша и кеша в оперативной памяти(FF26).
Использование: положите код в любую Custom Buttons кнопку, в инициализацию. Не обязательно создавать новую CB кнопку, можно использовать уже существующую.

Memory Monitor( Firefox 17-45 )
Memory Monitor( Firefox 45+ )
Memory Monitor как кнопка с выводом расхода оперативной памяти на кнопке:


Выделить код

Код:

// Показывать потребление памяти в адресной строке, от 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\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 ) 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) {};
   });
   
})();

Отредактировано bunda1 (29-07-2014 08:46:25)

Отсутствует

 

№205-11-2011 21:43:28

mserv
Участник
 
Группа: Members
Зарегистрирован: 15-11-2008
Сообщений: 1025
UA: Nightly 10.0

Re: [CB]Memory Monitor

Спасибо,  полезный код.  Вот только после ПКМ - настроить получается такая картинаc6c73c6cc5e7.jpg
Сколько раз нажимаю ПКМ, столько дополнительных МВ получается.

Отсутствует

 

№305-11-2011 22:29:14

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

Re: [CB]Memory Monitor

mserv
Спасибо, а то я забыл про эту проблему.
Я исправил код.

Отсутствует

 

№405-11-2011 23:16:06

mserv
Участник
 
Группа: Members
Зарегистрирован: 15-11-2008
Сообщений: 1025
UA: Nightly 10.0

Re: [CB]Memory Monitor

bunda1 пишет

Я исправил код.

Спасибо, теперь всё ОК.
PS Не останавливайтесь на достигнутом, добавьте загрузку процессора.smile.gif

Отсутствует

 

№505-11-2011 23:38:54

Inko7
Участник
 
Группа: Members
Зарегистрирован: 09-11-2009
Сообщений: 915
UA: Firefox 7.0

Re: [CB]Memory Monitor

bunda1
подскажи, что подправить в коде, чтобы убрать появившийся разделитель между Memory Monitor и history-dropmarker ?
Просто дропмаркер у меня скрыт стилем и образовывающийся разделитель ни к чему...

На форуме

 

№606-11-2011 00:06:12

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

Re: [CB]Memory Monitor

Inko7
в userChrome.css


Выделить код

Код:

#MemoryDisplay{
-moz-appearance: none !important;
border: 0px !important;}

Отредактировано bunda1 (06-11-2011 11:36:29)

Отсутствует

 

№706-11-2011 00:20:17

mserv
Участник
 
Группа: Members
Зарегистрирован: 15-11-2008
Сообщений: 1025
UA: Nightly 10.0

Re: [CB]Memory Monitor

bunda1
И ещё подскажите плиз, как уменьшить интервалы.
                                                                   874b14a0a9b8.jpg

Добавлено 06-11-2011 00:34:09
bunda1
У меня показатели отличаются от диспетчера задач на 70-130МБ  :(

Отредактировано mserv (06-11-2011 00:34:09)

Отсутствует

 

№806-11-2011 00:41:33

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

Re: [CB]Memory Monitor

mserv
в userChrome.css
:(
У меня показатели точно совпадают с диспетчером задач.
пробуй так:
about:config
dom.ipc.plugins.enabled - false

Выделить код

Код:

#MemoryDisplay{
-moz-appearance: none !important;
border: 0px !important;
padding:0px !important;
margin-right:-5px !important;
margin-left:-3px !important;
}

Отредактировано bunda1 (06-11-2011 11:36:14)

Отсутствует

 

№906-11-2011 01:03:47

adidharma
 
 
Группа: Members
Зарегистрирован: 15-08-2011
Сообщений: 754
UA: Opera 11.0

Re: [CB]Memory Monitor

mserv пишет

У меня показатели отличаются от диспетчера задач на 70-130МБ

А диспетчер задач "родной"(виндовый)? Process Hacker показывает зарезервированную память, taskmanager - рабочий набор, а Process Explorer - и то, и другое. У меня совпадает c диспетчером задач :)
s_1320526957_4141461_4ff6b10461.png


pcxFirefox - лучшая сборка Лисы!

Отсутствует

 

№1006-11-2011 01:29:22

mserv
Участник
 
Группа: Members
Зарегистрирован: 15-11-2008
Сообщений: 1025
UA: Nightly 10.0

Re: [CB]Memory Monitor

bunda1 пишет

в userChrome.css

Спасибо

bunda1 пишет

пробуй так:
about:config
dom.ipc.plugins.enabled - false

Так вообще не показывает, остаётся только МВ:(

Добавлено 06-11-2011 01:33:15
bunda1
Создал новую кнопку только с этим кодом, и стало всё ОК. :beer:

Отредактировано mserv (06-11-2011 01:33:15)

Отсутствует

 

№1106-11-2011 11:14:43

mserv
Участник
 
Группа: Members
Зарегистрирован: 15-11-2008
Сообщений: 1025
UA: Nightly 10.0

Re: [CB]Memory Monitor

В  вашем стиле надо заменить statusbarpanel на #MemoryDisplay, иначе может получиться маленький хаос в панели дополнений.

Отсутствует

 

№1206-11-2011 11:39:36

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

Re: [CB]Memory Monitor

mserv
Спасибо, заменю.

Отсутствует

 

№1306-11-2011 12:53:04

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

Re: [CB]Memory Monitor

На Memory Monitor можно навесить свою команду и он будет работать как CB кнопка.
Пример, после
добавляем
или добавляем


Выделить код

Код:

 var go = urlbar.lastChild;
    urlbar.insertBefore(memoryPanel, go)

Отредактировано bunda1 (08-11-2011 20:41:40)

Отсутствует

 

№1408-11-2011 22:34:56

Kamui
Участник
 
Группа: Members
Зарегистрирован: 31-03-2011
Сообщений: 1796
UA: Firefox 8.0

Re: [CB]Memory Monitor

На самом деле сомнительно решение заменить звездочку:/

Отсутствует

 

№1508-11-2011 22:45:27

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

Re: [CB]Memory Monitor

Kamui пишет

На самом деле сомнительно решение заменить звездочку:/

Почему.

Отсутствует

 

№1608-11-2011 22:57:42

mserv
Участник
 
Группа: Members
Зарегистрирован: 15-11-2008
Сообщений: 1025
UA: Nightly 10.0

Re: [CB]Memory Monitor

А мне идея понравилась, но не понравилось, что не работает с Add Bookmark Here ², поэтому оставил первый вариант [CB]Memory Monitor.

Отсутствует

 

№1709-11-2011 07:55:05

Kamui
Участник
 
Группа: Members
Зарегистрирован: 31-03-2011
Сообщений: 1796
UA: Firefox 8.0

Re: [CB]Memory Monitor

bunda1 пишет

Почему.

Звездочка как-то привычнее, да и по логике эти функции не связаны друг с другом. А еще на скрине видно что индикатор немного залезает на кнопку go. У меня например звездочка и go на одном месте находятся и заменяют друг друга (когда фокус на странице там звездочка, когда в адресной строке, там go), а тут такое не получится, потому что индикатор шире чем кнопка go/

Отсутствует

 

№1809-11-2011 11:18:04

mserv
Участник
 
Группа: Members
Зарегистрирован: 15-11-2008
Сообщений: 1025
UA: Nightly 10.0

Re: [CB]Memory Monitor

Kamui пишет

а тут такое не получится, потому что индикатор шире чем кнопка go/

Замени _dPrefix: true, на _dPrefix: false, и места станет больше. :)

Отсутствует

 

№1909-11-2011 18:37:49

mserv
Участник
 
Группа: Members
Зарегистрирован: 15-11-2008
Сообщений: 1025
UA: Nightly 10.0

Re: [CB]Memory Monitor

bunda1 пишет

Удаляет из адресной строки star-button(звездочка).

А можете сделать вариант кода с заменой не звёздочки, а треугольника выпадающего списка?

Отсутствует

 

№2009-11-2011 20:27:25

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

Re: [CB]Memory Monitor

Kamui пишет

А еще на скрине видно что индикатор немного залезает на кнопку go.

Не проблема, если изменить #MemoryDisplay{margin-right:

mserv пишет

А можете сделать вариант кода с заменой не звёздочки, а треугольника выпадающего списка?

К сожалению, не знаю как это сделать.
Но можно зделать так - кнопка go становится желтого цвета, если текущая страница уже есть в закладках + если щелкнуть правой клавишей мыши на go button, откроется диалог добавление страницы в закладки.

Отредактировано bunda1 (09-11-2011 20:45:16)

Отсутствует

 

№2109-11-2011 21:08:06

mserv
Участник
 
Группа: Members
Зарегистрирован: 15-11-2008
Сообщений: 1025
UA: Nightly 11.0

Re: [CB]Memory Monitor

bunda1 пишет

Но можно зделать так - кнопка go становится желтого цвета, если текущая страница уже есть в закладках + если щелкнуть правой клавишей мыши на go button, откроется диалог добавление страницы в закладки.

А у меня этой go нет совсем, и уже не помню, куда она делась, когда я её убрал…  scratch_one-s_head.gifДа и как управление закладками меня устраивает звёздочка, я просто просил убрать треугольник, а его функции приделать к [CB]Memory Monitor, что бы сэкономить место.

Отсутствует

 

№2207-01-2012 19:18:01

AKBA
 
Группа: Guest
UA: Firefox 9.0

Re: [CB]Memory Monitor

mserv пишет

bunda1
У меня показатели отличаются от диспетчера задач на 70-130МБ

У меня на 2 - 3МБ

 

№2307-01-2012 19:33:36

WW
Web traveler
 
Группа: Members
Откуда: Сибирь
Зарегистрирован: 21-12-2011
Сообщений: 95
UA: Firefox 10.0

Re: [CB]Memory Monitor

на 5мб разница, не думаю что это много)


Firefox - самый лучший брауз!!!

Отсутствует

 

№2407-01-2012 20:08:51

AKBA
 
Группа: Guest
UA: Firefox 9.0

Re: [CB]Memory Monitor

WW пишет

на 5мб разница, не думаю что это много)

Да не, не много. :)

Не успевает за диспетчером обновятся. :D

 

№2508-01-2012 00:49:35

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

Re: [CB]Memory Monitor

AKBA пишет

Не успевает за диспетчером обновятся. :D

интервал обновления можно изменить в коде


Выделить код

Код:

_interval: 2000, //ms

Отсутствует

 

Board footer

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