:( Фигня, товарищи, получается: версию обозвали 1.5, а один из главнейших багов (imho) так и не исправили! Эти косметические "подкрашивания" годятся на чиселку двух-трёх знаков после запятой, но не на пол-версии!
Мне эта проблема актуальна, т.к. :::: Mozilla/5.0 (X11; U; Linux i686; ru; rv:1.8) Gecko/20051111 Firefox/1.5 и Ubuntu 5.10/Debian/2.6, всего 64 метра и 300 МГц. Хуже, чем вин-98: там хоть рандом повезёт-не повезёт, а здесь стабильно каждые полчаса приходиться "перезагружаться"!! :mad:
ВОПРОС: Как это можно поправить или облегчить? (типа стратегии работы со вкладками и т.п.)
Буду заранее благодарен!

Reiser
расширения ставил какие-нибудь?
мы эту тему обсуждали недавно, сошлись на том, что чистый Firefox намного меньше этим страдает.
ну вот ей Богу, у меня в обеих осях стоит Firefox, работает долгие часы, ну раздуется может на 30-50МБ, но не более. какая разница - 50 или 100 МБ он занимает в памяти :)

часто виноваты расширения для работы с табами. во-первых кеш для восстановления закрытых табов криво сливается из памяти (проверено в табмикс+: делаешь список закрытых табов меньше, меньше жор памяти..), во-вторых не все гладко с префетчингом страниц в фоксе. При включенном и выключенном префетче память тает с разной скоростью..
Если приемлемо, можно поотключать такие фишки и получить некоторое облегчение по памяти

Сорри, а что такое "префетчинг"? это опционально? как это отключить?

Сорри, а что такое "префетчинг"?

Конвеерная обработка данных. Кажется так.

igorsub
нет.

prefetching - это загрузка страниц в фоновом режиме. создание иллюзии колоссальной скорости ценой пожирания трафика.
а pipeninig - это другое. это когда несколько запросов одновременно может идти к серверу.

а pipelininig - это другое. это когда несколько запросов одновременно может идти к серверу.

Сейчас посмотрел на Яндекс.Лингво, pipelining как раз и есть конвеерная обработка. Ошибся немного.

У меня firefox в памяти иногда по 300-500Мб кушает. И расширений вроде немного. Закрываю большинство вкладок - в памяти все равно метров 200 висит. Перезапускаю - все ок. В чем прикол?

Всё это просто замечательно.
Все ваши пояснения помогли настроить FasterFox нужным образом: вроде того, как отключение fastBack и enhansed prefetching хотя бы субъективно повысило скорость :). А кто может подсказать, как ещё правильнее нстроить pipeliling, размер кэша, днс, число http соединений и время начала рендеринга (initial rendering delay)??
Заранее благодарен гуру, делящимися своими знаниями и опытом!

Reiser
может, FasterFox?..

Что

может, FasterFox?..

Да прикол в расширениях глючных.. а также если стоит старая версия JAVA
а ещё чистить надо часто список загрузок.
Не стоит ни одного расширения для табов, а зачем если можно так

На данный момент стоят, и всё работает норма:

Cache Fixer
Disable Targets For Downloads
IE View
Popup ALT Attribute
ReloadEvery
Sage
Scrapbook
Searchbar Autosizer
Session Saver
AdBlock

Кто-нибудь пробовал программу Hare, которая якобы устраняет все утечки памяти в системе? Может она и в нашем случае помогает?

config.trim_on_minimize поставить в true
мне помогает от учетки памати
Здесь я постил инфу об этом

RcT
У тебя также?
И где вы находите config.trim_on_minimize, нету у меня такого.

lcraFTl
нужно просто добавить
Это после запуска
это свернутый
это развернули обратно

RcT
Добавил, но никакого эффекта.

config.trim_on_minimize.PNG

lcraFTl
Еще один....
Нужно было добавить не строковый параметр, а boolean, который принимает два значения true и  false

P.S. Сразу говорю, как удалить или поменять тип - не знаю, нужно экспериментировать

configTrim.png

RcT
:D неужели заработало, спасибо за понимание.
Эх, жаль мне всех остальных юзеров, кто этого не знает.. Такая опция должна быть по умолчанию включена.

[url пишет

http://kb.mozillazine.org/Config.trim_on_minimize[/url]]On Windows operating systems, when a program is minimized and left for a period of time, Windows will reclaim the memory the program used in anticipation that other programs might need it. Because of the way Mozilla applications are stored in memory, Windows is much more aggressive in reclaiming the memory they use, which can cause a delay when the program is restored. This preference determines whether to allow Windows to reclaim memory from a minimized Mozilla application.

Possible values and their effects

true - Allow Windows to reclaim memory when the program is minimized.

false - Prevent Windows from reclaiming memory when the program is minimized. (Default)

Caveats

This preference does not exist by default.

Recommended settings

If you're experiencing problems with the application consuming too much memory, you can try setting this preference to true. If you're not experiencing any problems, it should be left at false to maintain application responsiveness.

First checked in

2004-04-01 by Dan M

Has an effect in

    * Netscape (all versions since 7.2 on Windows)
    * Mozilla Suite (all versions since 1.7 on Windows)
    * Firefox (all versions since 0.9 on Windows)
    * Thunderbird (all versions since 0.6 on Windows)
    * Seamonkey (all versions on Windows)

RcT
В WIKI создал страницу, в самом низу http://forum.mozilla.ru/doku.php?id=firefox:issues
Если есть доступ в WIKI, напиши об исправлении бага.

ну, он довольно быстро "берет" свое. уже через 5 минут работу те же 30 Мб кушает. хорошо бы проверить, когда было ~300Мб. вот тогда скорее всего эффект отличный. но надо проверить :)

Вольный перевод.

[url пишет

http://kb.mozillazine.org/Config.trim_on_minimize[/url]]В ОС Windows, когда программа минимизирована и истается в этом состоянии некоторое время, Windows будет восстанавливать память используемую программой в ожидании того, что другие программы могут нуждаться в этой памяти. Из-за метода использования памяти в приложениях Mozilla, Windows более агрессивен в высвобождении используемой ей (Mozilla) памяти, что может вызвать задержку когда программа восстановлена. Эта настройка определяет, позволять ли Windows высвобождать память у минимизированного приложения Mozilla.


Возможные значения и их эффект

true - Позволять windows высвобождать память когда программа минимизирована.

false - Запрещать windows высвобождать память когда программа минимизированна (значение по-умолчанию)

Предупреждение

Эта настройка не приутствует по-умолчанию

Рекомендации
Если Вы сталкиваетесь с проблемой слишком большого поглащения памяти приложением, вы можете попытаться установить эту настройку в значение true. Если у вас нет такой проблемы, оставте эту настройку в значении false, чтобы оставить приложение способным к быстрому отклику.

Впервые обнаружено:

2004-04-01 by Dan M

Применимо в:
    * Netscape (all versions since 7.2 on Windows)
    * Mozilla Suite (all versions since 1.7 on Windows)
    * Firefox (all versions since 0.9 on Windows)
    * Thunderbird (all versions since 0.6 on Windows)
    * Seamonkey (all versions on Windows)

lcraFTl
У меня нет доступа на редактирование wiki

RED
значит 30 это нормально,

Если Вы сталкиваетесь с проблемой слишком большого поглащения памяти приложением

тогда работает, тогда для таких случаев

Ух, ты, действительно работает - в user.js, однозначно.

lcraFTl

lcraFT в Wiki пишет

Баг в Firefox 1.5 с невысвобождением памяти при сворачивании в трей

но

* Firefox (all versions since 0.9 on Windows)

так что не только в 1.5, хотя конечно лучше проверить

RcT

lcraFTl
У меня нет доступа на редактирование wiki

Ладно, потом сам сделаю.
Не знаю, такого не было на 1.0X версиях! Я юзал начиная с 1.00 RC1 и до 1.07.

Готово Высвобождение памяти в Firefox 1.5 и  в Thunderbird 1.5 при сворачивании в панель задач.
Кто может и хочет, правьте.

lcraFTl
Отлично, главное информативно, с картинками

супер! тему переименовал, так как печальные смайлики неуместны - проблема решена.
кстати, почитал Wiki, заодно решил проблему с русскими именами в html-ках. :)

alc
Подкинь строку из user.js, я добавлю в http://forum.mozilla.ru/doku.php?id=firefox:tips:user.js

user_pref("config.trim_on_minimize",true);

Работает.
И еще в Thunderbird тоже работает, при минимизации выгружает из памяти.

lcraFTl
А почему статья называется "Высвобождение памяти в Firefox 1.5 при сворачивании в трей"?
А без трея способ не работает что ли? ;)

Lynn

А без трея способ не работает что ли?

У меня работает при простом сворачивание в панель задач.:)

Lynn
rubel
Я попутал трей с панелью задач. :D
Предлагайте варианты, что поправить и улучшить.
А запятая не нужна перед словом "при сворачивании..."?

lcraFTl
нет, не нужна.

Работает! :) Вот только при разворачивании обратно отьедает все свои (сейчас) 100МБ :|

Преподнесли яичницу как божий дар.. Разве это решение? Съеденная память вовсе не возвращается, а всего лишь курсирует между физической и виртуальной. У меня к тому же наблюдается забавный эффект: свернёшь Fx — физическая память высвобождается, но медленно ползёт обратно и останавливается примерно на отметке 110. А на виртуальную память эта настройка, ясное дело, никак не влияет.

djet
Я тоже подумал, что багу пофиксили... а тут старая фича, но прикольная! :)

http://forum.mozilla.ru/viewtopic.php?pid=71019#p71019

INFOMAN
Забавно, как это "работает":

Memory cache device

Number of entries:      771
Maximum storage size:   16384 KiB
Storage in use:         38443 KiB
Inactive storage:       0 KiB

djet, он выделяет больше памяти, если необходимо, но потом освобождает.

Что значит если необходимо и когда это потом (через 3 года)? Я ведь жёсткий лимит задал, а он более чем на 1000% его превышает. :o

Maximum storage size:     4096 KiB
Storage in use:     47474 KiB

djet, у меня после закрытия вкладок, с которых объекты в кэше, освобождает.

Я так и не вижу связи между ограничением памяти под кэш (которое не работает!) и высвобождением/невысвобождением памяти. :/

Видимо, если ограничение не прописывать, оно считает, что у тебя память безразмерная, и не освобождает...

Размер кэша никак не связан с утечками. А ограничение всегда есть: Browser.cache.memory.capacity - MozillaZine Knowledge Base

хз
Я раньше пытался ставить эту же версию, к-рой сейчас пользуюсь, оно забивало 60М памяти из 128, жутко тормозило и не освобождало память при закрытии вкладок. А сейчас нормально все, жрет до 35 метров и вполне юзабельно.

Лимит на кэш в памяти не ставил, а вобще его вырубил, лис сразу в два раза похудел, при том же количестве вкладок.

Выделить код

Код:

browser.cache.memory.enable = false

ViRUS
Беру свои слова назад! Браузер похудел, но из-за отключения кэша в памяти, некоторые страницы перестали загружаться.

ViRUS, вот я тоже пытался отрубить.
Только у меня вообще ничего не загружалось.

0011bk.jpg

привет всем.
никто еще не решил трабл? различные ухищерения с memory в about.config ничего не дают, впрочем как и в реестре в Memory Management. так и отключение hyper trading никак не влияет. уже и незнаю что и делать.

Reiser пишет

:( Фигня, товарищи, получается: версию обозвали 1.5, а один из главнейших багов (imho) так и не исправили! Эти косметические "подкрашивания" годятся на чиселку двух-трёх знаков после запятой, но не на пол-версии!
Мне эта проблема актуальна, т.к. :::: Mozilla/5.0 (X11; U; Linux i686; ru; rv:1.8) Gecko/20051111 Firefox/1.5 и Ubuntu 5.10/Debian/2.6, всего 64 метра и 300 МГц. Хуже, чем вин-98: там хоть рандом повезёт-не повезёт, а здесь стабильно каждые полчаса приходиться "перезагружаться"!! :mad:
ВОПРОС: Как это можно поправить или облегчить? (типа стратегии работы со вкладками и т.п.)
Буду заранее благодарен!

У меня после где-то двух недель непрерывной работы firefox память жрать резко начинает. Он похоже не умеет освобождать кеши в памяти. Нужны настройки под это дело. Можно так утром придти и увидеть что его ядро пришило. Поэтому я когда ухожу ему pkill -STOP говорю.

проблема решилась. вобщем перепробовал я все способы которые тут описаны, и размер выделяемой памяти установил и высвобождение на сворачивание, ничего не помогало. прочел что основную проблему вызывают расширения работающие с закладками стоял у меня Tabbrowser Preferences 1.2.8.8, но по форуму ругали в основном Tabbrowser Extensions, и Tab Mix Plus. снес я Tabbrowser Preferences и поработал вроде бы лучше но все равно не то. решил я попробовать Tab Mix Plus, т.к. все равно память наростает, а удобств пользования заклодок нет. поставил немного поработал, та же история. решил поднастроить, и убрал кеширование закрытых вкладок. и все как бабушка отшептала. целый день сижу и болше 65 mb не отъедает :)
Используемые расширения: [20]
- Adblock Filterset.G Updater 0.2.6:
- Adblock Plus 0.5.11.1:
- ConQuery 1.6.4
- CustomizeGoogle 0.40:
- CuteMenus - Crystal SVG 0.9.9.63:
- Extended Statusbar 1.2.4:
- FlashGot 0.5.9.99:
- Forecastfox 0.8.2.5:
- MR Tech Local Install 4.0:
- NoScript 1.1.3.5:
- Right Encoding 0.2.1:
- Ru-Board Navigation 1.4:
- Searchbar Autosizer 1.0.6:
- Super DragAndGo 0.2.4:
- Tab Mix Plus 0.2.5.2
- TargetAlert 0.8.9.7:
- Translation Panel 1.4.13+
- Update Channel Selector 1.0.1:
- User Agent Switcher 0.6.8:
- Work Offline 1.0:

zu

попробовать Tab Mix Plus, т.к. все равно память наростает, а удобств пользования заклодок нет. поставил немного поработал, та же история. решил поднастроить, и убрал кеширование закрытых вкладок.

А в чём заключается эта функция - кеширование закрытых вкладок?

А в чём заключается эта функция - кеширование закрытых вкладок?

я так понимаю он последние несколько вкладок кеширует для того что если вдруг закрыл случайно вкладку, открыть её из кеша, или восстановление вкладок после запуска, вобщем удобно если разобраться, но вероятнее всего тут утечка и происходит.
пысы второй день нарадоваться немогу :)

А в чём заключается эта функция - кеширование закрытых вкладок?

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

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

zu

я так понимаю он последние несколько вкладок кеширует

Так они и так уже в кеше, а если очистить кеш их ведь не откроешь? Т.е. нет отдельного кеша этого расширения?
Мне кажется, восстановление вкладок работает только с адресом - примерно как если сохранить адрес открытой вкладки в буфер, закрыть вкладку, открыть пустую, вставить адрес из буфера и открыть. Вроде бы не сверхпамятезатратное дело. Но это я просто фантазирую - точно не знаю.

Утечка памяти же не в одном месте происходит, так что ещё устранять и устранять.

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

Пожоже вся страница сохраняется, т.к. у меня после отключения все закрытые вкладки восстановились

Вот что пишут в багзилле насчёт выделения памяти:

- blazingly fast back feature will ignore the memory cache limit. a tab may
keep in memory several already visited pages even though the cache memory limit
has been reached.

Так что.. за что боролись, на то и напоролись!
Попробуйте отключить bfcache (browser.sessionhistory.max_total_viewers=0) и сравнить.

У меня сейчас просто сотонинские цифры: :lol: :lol:

Number of entries:     666
Maximum storage size:     4096 KiB
Storage in use:     27332 KiB
Inactive storage:     0 KiB

Так они и так уже в кеше, а если очистить кеш их ведь не откроешь? Т.е. нет отдельного кеша этого расширения?

как дело в том что у расширения свой собственный кеш. и вероятнее всего по какимто причинам он и есть причина стремительного роста памяти.
доклад о полете: третий день активного использования, с огромным колличеством вкладок- памяти отъедает 78мб :)

- if there's a page on the screen (visible or in a tab), it might use more
memory that actually allowed, becuase that memory can't be thrown away.

- if you're using Adblock 0.5.2.056, then you should better remove it (not just
disable it), because it has serious memory leaks. It could be the reason that
all memory is active (bottom counter), so it can't be thrown away

То есть, память расходуется на:

[uli]Отображение всех открытых страниц (решение: закройте окна и табы, проветрите помещение);[/uli]
[uli]поддержку жизнедеятельности bfcache, т.е. быстрой работы функций Back/Forward (решение: отключите bfcache через about:config: browser.sessionhistory.max_total_viewers=0); есть подозрение, что эта функция вызывает утечки;[/uli]
[uli]утечки в некоторых расширениях. Под подозрением находятся TabMixPlus и AdBlock 0.5.2.056. На багзилее рекомендуют полностью удалить последний (т.е. не просто отключить, а удалить!).[/uli]

В описании для табмикс+ написано русским языком, что для восстановления закрытых вкладок используется отдельный кеш и его размер можно указать..
Закрытая вкладка восстанавливается со всей ее историей (т.е. вперед-назад переходы работают так, будто ничего не закрывалось).

А отключение Bfcache - это ИМХО неправильное решение. Быстрый переход вперед-назад был одной из фич ФФ 1,5. Отключая разные фичи можно снова прийти к 1,0,7 и далее к нулячим версиям :( . Нужно править баги, а не выключать функции! Иначе развитие системы пропадает.
И приходит эра огненного осла :)

Rommel.ua

А отключение Bfcache - это ИМХО неправильное решение. Быстрый переход вперед-назад был одной из фич ФФ 1,5. Отключая разные фичи можно снова прийти к 1,0,7 и далее к нулячим версиям sad . Нужно править баги, а не выключать функции! Иначе развитие системы пропадает.
И приходит эра огненного осла smile

Увы, в Fx существует целый парк глючащих/недоделанных функций, а чинят их довольно медленно, а даже когда починят, через пару билдов нередко возникают всякие регрессии. Вместо выпуска 1.5 лучше бы старые ошибки починили. :/

А у меня от отключения bfcache эффект только положительный: скорость работы визуально не упала, и расход памяти теперь гораздо реже выходит за рамки 100Мб. :cool:

==> Firefox и прибиваю

Don't install Adblock extension with Firefox 1.5 as it causes an increase in Firefox memory usage. Instead use AdBlock Plus.

http://labnol.blogspot.com/2006/01/solu … ox-15.html

INFOMAN
Ну и чё теперь отказатся от Adblock :(
Нет ни за что, вроде память не утекает и всё работает.

lcraFTl, читай внимательней:

Instead use AdBlock Plus

, что значит: юзай вместо него AdBlock Plus

У меня после посещения http://forum.dklab.ru почему-то не освобождался кэш в памяти... вообще.
Там стоит либа Subsys_JsHttpRequest - определяет поддержку браузером XmlHttpRequest и юзает его либо динамически создаваемый <script>
Поставил AdBlock Plus - все ОК

Обнаружил утечку в расширении SessionSaver при включенной функции восстановления закрытых табов.

всем привет!
нашёл для себя решение проблемы софтинкой FreeRAM XP Pro, которая висит в трее и через определенные промежутки времени "разгружает" память.
память FF у меня около 22мб
к сожалению не смог прицепить скрин, но если интересно вот ссылка на утилитку:
_ttp://www.yourwaresolutions.com

надеюсь за рекламу не сочтете ;)

Если утечка состоит в том, что какое-либо расширение создаёт динамический массив объектов, но забывает вызвать деструктор то такую утечку не устранить программами типа FreeRam . Я думаю , что  утечка происходит в расширениях или интерпритаторе XUL (или в том и другом). Несколько дней использования пустого firefox показали, что он память не особо кушает, а при установке особенно tab менеджеров расход памяти возрастает в разы. Вполне возможно , что неэффективно работает сборка мусора(по идее движек расширений её должен иметь). По моему если с проблемой пока не справились разработчики, то она не так проста. Кто разбираетья в с++ мог бы и почитать перед сном исходники ,авось бы и нашли забытый где нибудь деструктор.

p.s. Хотя похоже программа по очистке памяти в общем - то действует - память фокса 22мб-30мб, виртуальная всё время около 33мб. В общем за неимением др. способов попробуйте какой нибудь чистильщик памяти.

djet пишет

Обнаружил утечку в расширении SessionSaver при включенной функции восстановления закрытых табов.

Грохнул SessionSaver, как кушал так и жрет, 66 память 55 своп и это при 2х открытых на данный момент вкладках, TBPreferences установлен.

Session Saver не при чём, но без него при свёрнутом виде в панель задач Firefox занимает примерно до ~5 Mb, так что всё в норме, главное использовать минимум расширений.

В общем испытания програмы дефрагментации и оптимизации памяти вполне успешна .Возможно до новых версий это успешное решение. Память фокса не поднимаеться выше 32 мб физич/32 виртуальная. И плюс вся система стала пошустрее, но иногда когда оптимизируеться память, происходят тормоза на 0.5-1 сек. В общем пробуйте и делитесь впечетлениями.

Туфта все эти "волшебные исцеления".. Горбатого — дебаггер исправит.

Ты прав...

Отклейте эту тему. А то всё время приходиться заходить на неё, а решения всё равно нет.... А лучше исправьте название.... И когда решение появиться реально, тогда и писать "Долгожданное решение"

Крыска пишет

Отклейте эту тему. А то всё время приходиться заходить на неё, а решения всё равно нет.... А лучше исправьте название.... И когда решение появиться реально, тогда и писать "Долгожданное решение"

Окончательного и полного не дождемся, но скоро станет полутчше -
http://www.squarefree.com/2006/02/04/memory-leak-progress/

Я вот не понял, о каком транке идёт речь: 1.8 или 1.9. А 10 багов — это сильно даже без кривых расширений. Session Saver там тоже отмечен, кстати.

trunk это 1.9

Комментарий Goodger по поводу утечек памяти http://weblogs.mozillazine.org/ben/archives/009749.html

А вот explain, please:
1. Почему при сворачивании в трей из ~50mb working set (реальной памяти) FF мгновенно уменьшается до ~6mb? а потом всё равно постепенно "наращивается" до прежнего значения, хотя и всё ещё свёрнута??
2. Отключение полвины расширений действительно ускорит работу FF, или же она всё равно их всех в память загружает, но просто не пользует функции отключенных?

А кто-нить вообще ПОНИМАЕТ и может ОБЪЯСНИТЬ, ПОЧЕМУ программа ПРОСТО ТАК отжирает ВСЁ ВРЕМЯ память???

Reiser
Понять проблему - это половина решения. Есть только гипотезы, если перечитаете всю ветку, увидите как носятся с каждой по очереди...

О каком долгожданном решении идет речь? Обратите внимение на "RSS   VSZ" - это при том что вначале, сразу после загрузки, всего  метров 30 забирает.

Выделить код

Код:

ps ax -O rss,vsz `pgrep firefox`
  PID   RSS   VSZ  TT  STAT      TIME COMMAND
33436 355636 379044  ??  S    195:51,19 /usr/X11R6/lib/firefox/firefox-bin

uname
6.1-PRERELEASE FreeBSD 6.1-PRERELEASE #0: Sat Feb 18 21:36:44 MSK 2006 i386

firefox-config --version
1.5.0.1

Понять проблему - это половина решения.

Да, чёрт побери, что же тогда происходит в стане Мозилла?! У сообщества на руках все коды, много опытных программистов... И что же мешает понять проблему, а там и расквитаться с ней??! Ведь даже с разнесчастным эксплорером такого не происходит!

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

попробовал открывать страницу на 2 мб на чистом профиле - фокс сражу выжирает 100мб, а Maxton остается висеть 2мб. Это безобразие!

попробовал открывать страницу на 2 мб на чистом профиле - фокс сражу выжирает 100мб, а Maxton остается висеть 2мб. Это безобразие!

Ну 100Мб ты загнул, обычно в среднем 40-70Мб и бывает что память не утекает когда сворачиваешь, видимо это связано с сайтами, которые открыты и загруженными плагинами, возможно память кушает Flash Player или Java.
Ну и ещё могут виновны какие-то расширения.

Mantis
Попробуй выждать минуту-две. Через некоторое время пиковое использование памяти спадает. Вот пример загрузки страницы с 15 Мб графики:
fx4el.th.png

lcraFTl
ты был у меня за спиной и видел? Я уже больше месяца смотрю за этим всем, пробовал различные сборки и билды, пофигу, всё равно утекает.

Удаляю старый профиль, запускаю фокс (ессно разширений 0, флеша тож нет), открываю в нем с локального диска страницу на 2 мб (с картинками):
firefoxnew4uq.th.png
в памяти 90 260кб, освобождать ее явно не собирается (и не освободит, я уже 100 раз это видел)
теперь открываю в добавок ещё 5 страниц (опять локальная папка, ничего особенного - по 500 -800 кб текста + картинки)
firefoxnew26ce.th.png
результат - в памяти 160 ... кб, если открыть ещё визио+ворд+эксель, то вообще готично.

Программы, типа free ram pro, не помогают, разве что в MemInfo есть дефрагментатор, который заставлял Фокса освобождать память, но опять же это ненадолго.

И это, прошу заметить, на чистом профиле, без привычных расширений (типа TabMix, SessionSaver, Adblock Plus, Flashgot).  А по специфике работы я постоянно в инете, потому браузер просто необходим.

С настройками, приведенными в теме, экспериментировал, но без внятного результата, а отказываться от нужных расширений - так нафига тогда Фокс?

Mantis
А что за страница-то? Выложи, посмотрю.

djet
да обзор DVD-RW привода какого-то с cdfreaks.com в печатной версии, когда там всё одной страницей.
На работе лежит, сейчас уже и не вспомню.

Вот сча ради эксперимента дома открыл 10 статей с iXBT - 111+ MB. Хотя тут профиль оч старый, да и расширений побольше. Но. Закрыл - через 10 минут всё те же 100+ МБ (хотя открыта только 1 страница). Но здесь ещё можно погрешить на профиль, если будет время на выходных, то попробую переустановку+чистый профиль.

После того, как походишь по сайтам с крупными фотографиями (любая фотогалерея), память съедается вся какая есть
clipboard9ha.th.png
это снято при всех закрытых вкладках, то бишь одна -- about:blank

shred
Расширения тоже утекают. В этом замечены SessionSaver и AdBlock.

Расширения тоже утекают. В этом замечены SessionSaver и AdBlock.

Помнится я сменил AdBlock на AdBlock Plus и утекания прекратились. А теперь вот опять... А без AdBlock'a - это не жизнь.

Можете поштучно или пачками отключать расширения и смотреть, продолжаются ли утечки..

djet
так у меня на чистом профиле без расширений уже фигово. А без SessionSaver и AdBlock Plus фокс разве что маньякам нужен

Mantis пишет

djet
так у меня на чистом профиле без расширений уже фигово. А без SessionSaver и AdBlock Plus фокс разве что маньякам нужен

Приветствую.

Надеюсь это http://forum.mozilla.ru/viewtopic.php?pid=86310#p86310 поможет.
Или создайте в профиле файл user.js и пропишите там

Выделить код

Код:

user_pref("browser.cache.memory.capacity", 4096);

djet

А что за страница-то? Выложи, посмотрю.

cdrinfo.com/Sections/Reviews/Print.aspx?ArticleId=14976

user_pref("browser.cache.memory.capacity", 4096)
тоже не помогает :usch:
после непродолжительной работы накапливается под 200 метров
FreeRAM показывает иногда 0 свободной памяти - приходиться освобождать
заметил только, что на винт возросла нагрузка :cry:

Different
По поводу FreeRAM. После ее установки, через два дня использования память почему-то стала кончаться вообще (начались проблемы с памятью) , хотя до этого все было нормально (памяти 1Гб). После удаления ее, все стало нормально. Это мое мнение о использовании этой программки.

Модераторы, ну смените наконец название темы на более подходящее! Сколько можно вводить в заблуждение и обнадёживать пользователей? :angry:

djet
такое подойдёт?:) можно было просто написать репорт, сменили бы раньше

Quicksilver tears

такое подойдёт?

1. Я бы ещё добавил ": догадки, решения, сплетни" :lol:
2. FF заменить на Fx — официальнее :)
3. Номер версии убрать — тема имеет все шансы дожить до выхода как минимум Fx 3.0 :lol:

можно было просто написать репорт, сменили бы раньше

Это в смысле на кнопку "Стукануть модератору"? :lol: Я её только в экстренных случаях жму (ну типа "выбить стекло, нажать на кнопку"), а так предпочитаю держаться подальше. К тому же выше по течению темы народ то же самое просил..

Помогите. Неожиданно резко возрасла утечка памяти!!! :whiteflag::whiteflag::whiteflag:
За минут 30 набегает под 300 метров. Раньше за целый вечер писка обоев намегало 200... сейчас форумы, новости и.... бешенные торрмоза.
помогите выловить ту сво... которая это делает!:(
подозрения в сторону ЭдБлок.

Крыска
какие расширения стоят (с указанием версий)?
Ага, уже не надо говорить. Сам вижу, где посмотреть:)

Крыска
у меня такое было только при вкючении сессий табмикс:|

Bananas
табмикса нет, сохранение сессий нет.
НО кроме АдБлок и ИЛО есть КрашРековери. не знаю принцип работы его, но догадываюсь, что оно такое: сохранять загруженные страницы каждые секунд 30... как происходит обвал мозиллы, то он востанавливает все сохранённые закладки. может и он виноват.
:whiteflag:

Крыска
На счёт Краш рековери согласен. Получается такая штука: крашрековери сохраняет страницы => всё тормозит => Firefox дохнет => крашрековери воостанавливает страницы => крашрековери сохраняет страницы => ...

Вообщем, сносить его злостно.

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

Крыска
Я больше мучался с тормозами. Зато какой ощутимый прирост скорости... :) Юзаю теперь SessionSaver. Каждые полчаса сохраняюсь. Если вкладок много. Горячую клавишу сделал на него - ударил по двум кнопкам - живу спокойно.

Крыска
Попробуй Session manager

Товарищи :) очень рекомендую Tab Mix Plus как альтернативу куче других расширений, ибо там собран и сешен менеджер и тому подобное.

А ещё я хотел порекомендовать расширение Cache Status. Он позволяет ощичать кэш. И это помогает.

Т.е. вот щя поглядел, по 80 метров и той и той памяти, очистил, стало 63 на 59. И у меня ещё 7 окон с кучпей инфы открыто. Но память высвобождается!!

Quicksilver tears
так в ТБЕ тоже есть такой менеджер. просто я надеялся, что расширение сохраняет ссылки а не всю страницу... или что оно там пытается мохранить....

Странно - поставил 1.5.0.1 не глюков не тормозов не вижу... :angel:
Может мне просто везет? Тьфу-тьфу...
А так очень даже нравиться :rock:

:/ мдя... почитал, попробовал разные варианты... а воз и ныне там... Fx - пожиратель памяти... :|

Люди, давайте высказываться конструктивно!:D

План такой:
1. Можно ли победить недуг теоретически, в принципе?
2. А практически? Интересно решение с самим Fx, а не с каким-то конкретным набором расширений!

Пусть знающие люди, те, которые понимают принципы происходящего, высказываются!

Люди, давайте высказываться конструктивно!big_smile

Давайте! Я предлагаю всем у кого ff жрет много памяти, снести его полностью, вместе с профилем, затем поставить ff с официального сайта, и юзать его безо всяких расширений и плагинов, а потом сообщить нам жрет ли он память так же (и сколько). Если нет, то предлагаю подумать какой плагин или расширение отъедает столько памяти.
P.S. У меня около 20 расширений на Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8) Gecko/20060321 Firefox/2.0a1 и около 30 расширений на ff из подписи и каждый из них ни разу не превышал 60 мб (сейчас 55мб)

Давайте! Я предлагаю всем у кого ff жрет много памяти, снести его полностью, вместе с профилем

:whiteflag: очнись паря :dumb:, у меня куча нужной инфы в профиле торчит :angry: поэтому предложение типа а давайте снесем все и построим заново не подходит... по крайней мере для меня :beer: ... а по хорошему за все возможности и вкусности приходится платить от этого не уйти... думаю что вся лабуда с обжорством именно из-за расширений, как только начинаешь подключать так самое веселое и начинается :tongue2:

у меня куча нужной инфы в профиле торчит

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

RcT
Список безглючных расширений в студию. И ещё интересно, а сколько при этом в свопе занимает места, у меня, напирмер, там только растёт цифра и никак не уменьшается, хотя уже :::: Mozilla/5.0 (X11; U; FreeBSD i386; en-US; rv:1.8.0.2) Gecko/20060415 Firefox/1.5.0.2
И сколько в оперативной памяти занимает вообще не то, помню занимал в какой-то момент в kb и ничего, если Ff дать волю весь своп отъест

Кстати, при прочих равных после update 1.5.0.1 до 1.5.0.2 (700кб) память стала субьективно меньше отжираться.

может я чего то не допонимаю но у меня обновляться до 1.5.0.2 автоматом отказалась наотрез... "нет обновлений" и все... пришлось качать полную версию, может это изза того что профиль путешествует с нулевой.9 версии?

Если вы хотите констуктива и фактов, попробуйте Firefox memory leak detection tool — инструмент для выявления утечек памяти. Раньше эта приблуда работала только в ночнушках, но теперь пашет и в 1.5.0.2. Разработчики пытаются облегчить нашу жизнь в поисках утечек. :lol:

Установил, поработал(6-7 открытых вкладок с разных сайтов, потом все их закрыл), Fx собрал под себя 60Мб свопа, и 76Мб оперативки и до сих пор не отдает их при одном открытом окне, запустил скрипт

Summary:
Leaked 0 out of 0 DOM Windows
Leaked 0 out of 0 documents
Leaked 0 out of 0 docshells

думайте, пиратики... думайте

REdiska
Ну так, насколько я понял из описания, надо сначала запустить скрипт и при запущенном скрипте лазить...

На всякий случай объясняю, как им пользоваться:
1. Создать переменные окружения:
NSPR_LOG_MODULES=DOMLeak:5,DocumentLeak:5,nsDocShellLeak:5
NSPR_LOG_FILE=путь-к-логу\nspr.log

2. Запустить Fx, поработать в нём достаточное время для выявления утечек.
3. Закрыть Fx, скопировать лог в другое место, т.к. при следующем запуске он будет перезаписан.
4. Запустить браузер и проанализировать скопированный лог с помощью leak-gauge.html, либо leak-gauge.pl.

Вместо создания статических переменных окружения можно загнать их в батник и запускать Fx из него. Тогда отпадёт наобходимость копирования лога в безопасное место.

djet пишет

На всякий случай объясняю, как им пользоваться:

у тебя перловая версия? я то JS-пытаюсь включить... чтото не догоняю... тяжело быть деревянным по пояс :(

REdiska
У меня обе версии, они работают совершенно одинаково.

Провёл небольшой анализ на своём рабочем профиле, результат не слишком утешительный. Из народного браузера память течёт, как из старого дырявого ведра:

Summary:
Leaked 76 out of 176 DOM Windows
Leaked 58 out of 402 documents
Leaked 4 out of 49 docshells

Помимо значительного количества ссылок на файлы самого браузера, лог выдал следующих претендентов:
acmanager
tabmixplus
updatenotifier
imagetoolbar
forecastfox
aios

djet

forecastfox

утечка памяти в этом расширении есть точно.

Quicksilver tears
У меня вроде нормально с ним всё работало. Если только в сочетании с чем-нибудь.

А если расширение ForecastFox не удалять, а только отключить, оно не будет уже вызывать утечек?

Приветствую.

Попробовал на чистом профиле без расширений

Результат:

Выделить код

Код:

Leaked outer window 3aea778 at address 3aea778.
Leaked inner window 2e94f88 (outer 3aea778) at address 2e94f88.
 ... with URI "http://webmail.yandex.ru/messages".
Leaked inner window 386dd98 (outer 3aea778) at address 386dd98.
 ... with URI "http://webmail.yandex.ru/messages".
Leaked inner window 2193658 (outer 3aea778) at address 2193658.
 ... with URI "http://webmail.yandex.ru/messages?current_folder=530000000000022129".
Leaked inner window 355ed58 (outer 3aea778) at address 355ed58.
 ... with URI "http://webmail.yandex.ru/messages?current_folder=530000000000022129".
Leaked inner window 35649c0 (outer 3aea778) at address 35649c0.
 ... with URI "http://webmail.yandex.ru/messages?current_folder=530000000000022128".
Leaked document at address 37007b8.
 ... with URI "about:blank".
 ... with URI "http://www.from-ua.com/".
Leaked document at address 2b28f30.
 ... with URI "about:blank".
 ... with URI "http://www.from-ua.com/files/mbn.html".
Leaked document at address 3887d78.
 ... with URI "about:blank".
 ... with URI "http://www.from-ua.com/files/mbn.html".
Leaked document at address 34b0618.
 ... with URI "http://webmail.yandex.ru/messages".
Leaked document at address 37e63a0.
 ... with URI "http://webmail.yandex.ru/messages".
Leaked document at address 350dc68.
 ... with URI "http://webmail.yandex.ru/messages?current_folder=530000000000022129".
Leaked document at address 3b308f0.
 ... with URI "http://webmail.yandex.ru/messages?current_folder=530000000000022129".
Leaked document at address 2cfccc8.
 ... with URI "http://webmail.yandex.ru/messages?current_folder=530000000000022128".
Leaked docshell at address 35d3ec8.
 ... which loaded URI "about:blank".
 ... which loaded URI "wyciwyg://0/http://www.from-ua.com/".
Leaked docshell at address 34d9218.
 ... which loaded URI "about:blank".
 ... which loaded URI "wyciwyg://2/http://www.from-ua.com/files/mbn.html".
Leaked docshell at address 3887998.
 ... which loaded URI "about:blank".
 ... which loaded URI "wyciwyg://4/http://www.from-ua.com/files/mbn.html".

Summary:
Leaked 6 out of 175 DOM Windows
Leaked 8 out of 132 documents
Leaked 3 out of 74 docshe

Похоже, AJAX ( webmail.yandex.ru ) просто некудышно сделан, в ведь утечку XmlHttpRequest правили уже...

Больше всего удивил about:blank :) :cry:

Reiser
Нет.

IE Tab 1.0.8 - безбожно теряет память, даже если его функции и не юзаются :(

C такими рассуждениями получается что виноваты какие-то расширения, на самом деле есть может несколько расширений действительно теряют, а вообще сам Firefox теряет память, вот и всё..

lcraFTl пишет

C такими рассуждениями получается что виноваты какие-то расширения, на самом деле есть может несколько расширений действительно теряют, а вообще сам Firefox теряет память, вот и всё..

И SeaMonkey тоже, правда, не в таких объемах. По моим наблюдениям, это, в основном AJAX.
Похоже, в SeaMonkey "течет" только движок, а в Firefox еще и интерфейс.

Dark-Demon
Странно. У меня всё нормально.

stoneflash, у тебя какая версия? проверял способом указанным в начале страницы?

Dark-Demon
1.0.8. Каким способом, в начале какой страницы? у нас, видно, отображение форума по-разному настроено.

stoneflash пишет

Dark-Demon
1.0.8. Каким способом, в начале какой страницы? у нас, видно, отображение форума по-разному настроено.

Приветствую.

http://forum.mozilla.ru/viewtopic.php?pid=98834#p98834
После копирования файла с логами
(1) Открываете leak-gauge.html
(2) Жмете на ссылку в этой страничке
(3) В окне загрузки файла указываете скопированный Вами файл

И увидите результат

ru-vadik пишет

http://forum.mozilla.ru/viewtopic.php?pid=98834#p98834
После копирования файла с логами
(1) Открываете leak-gauge.html
(2) Жмете на ссылку в этой страничке
(3) В окне загрузки файла указываете скопированный Вами файл

И увидите результат

такое ощущение что кроме переменных окружения надо еще и ДОМ-инспектора ставить... а я его снес при установке :))) какое мнение?

REdiska, если у тебя не 1.5.0.2, то работать и не должно...

Dark-Demon пишет

REdiska, если у тебя не 1.5.0.2, то работать и не должно...

она самая... честно говоря меня малость задолбала ситуация с пожиранием памяти... перелез пока на Maxton но за развитием Fx наблюдаю... IMHO - нужна стабильность

Вот наутекалось у меня :) Шастал по обойному сайту в поисках живности милой и природы.....
Статью на Мобайл-ревю паралельно почитывал.....

Гад только собирает сё и ничего не очищает... НО при этом почти не подтормаживал при переключении.
Clip_71.jpg

Также наблюдаются утечки в TBX, версии, который из ExtensionPack 0.7 :mad:

Кстати, тут расширение небольшое появилось: Leak Detector.

This extension pops up an alert dialog to warn chrome and extension developers about one particular type of leak. It warns when chrome windows close but leave other code pointing at their JavaScript objects.

Т.е. показывает алерт, если окошко закрыли, но остался код, указывающий на него/его объекты.
Надо будет попробовать....
:offtopic:
По описанию похоже, что англ для автора не родной %)

Утечки с этим расширением ловятся пачками, одна из них в humanurl :)

Кстати, тут расширение небольшое появилось: Leak Detector.

При закрытии попап-ов из популярных "течет" flashblock 1.5.1, из непопулярных - хyzproxy 1.13

Фехня какая-то.. Выводит оно окошко, и что? Я и так в курсе, что память течёт. Но как узнать, откуда течёт?

ietab по утечкам на первом месте. Ещё Slashy (:/), target alert.
Ещё gamil.com и mail.yandex.ru... :usch: :/

Кстати, тут расширение небольшое появилось: Leak Detector.

Что то я не понял как оно работает это расширение.. установил а ничего посмотреть не могу?:( объясните тупому..

hiJOybOng
Как олько появляется утечка - он окно выводит. до этого нечего. Сейчас может ещё на русский переведу, чтоб понятней было.

stoneflash
ааа! понял! В принципе в переводе с английского я так и думал! ПРосто вдруг что то еще можно посмотреть... статистику какую ..

Да уж.. За 15 минут окошко раз 5 выскакивало.. первый раз при передаче плэйлиста винампу, второй раз при добавлении закладки и 3 раза из за скриптов на форуме одном... Ужас:( Бедный ФФ:(

Меня достали постоянно вылетающие окна, снёс расширение к чертям. Тем более толку от него ноль.

djet
Я пару не очень нужных расширений снёс по его совету.

stoneflash
Может, я торможу, но где это расширение указывает на конкретный источник утечки? Или без телепатии тут не обойтись?

djet
Показывает, какое расширение не выгрузило из памяти свои chrome. Где очень много - те и сносить.

Да ладно вам народ.
Фокс - одна большая утечка памяти.

Вот если бы это расширение сразу репорты делало разработчикам....

"Что-то я замечтался* :music:

Общий вопрос: как ускорить работу Fx? Сообщите фактами, если не достаточные, то хотя бы необходимые.
Основные вопросы, которые меня волнуют:
1. Наличиствует пяток установленных тем, которые никогда не юзаються -- они как-то тормозят работу? загружают память?
2. Также в наличии имеем штуки 4 отключенных расширения -- это как-нибудь сказывается?
Применённая тема (Qute) вызывает повышенное торможение? или без темы Fx бегает быстрее?
p.s. Основная проблемма - недостаток памяти (128mb, win2k, 300mhz)

Reiser пишет

или без темы Fx бегает быстрее?

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

Supermaks
Каждому разработчиууууу.... Всеь нет скоро бы обителся бы!

Скажите, а наличие отключенных расширений как-то влияет на скорость загрузки/работы FF?

Reiser
Вряд ли... Наличие отключённых расширений скорее всего записано в файле и просто при загрузке из него подгружается название расширение и его описание на английском языке...

Дайте кто-нибудь, плиз, прямую ссылку на этот leak detector

лучше использовать leak gauge, ибо leak detector не всегда утечки показывает.

Serg_T
Leak Detector
Leak Gauge - страница где про него можно прочитать (на английском языке)

вот, откопал свою руссифицированную модификацию...

Выделить код

Код:

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN"
	"http://www.w3.org/TR/html4/strict.dtd">
<!--
  vim:sw=4:ts=4:et:
  ***** BEGIN LICENSE BLOCK *****
  Version: MPL 1.1/GPL 2.0/LGPL 2.1

  The contents of this file are subject to the Mozilla Public License Version
  1.1 (the "License"); you may not use this file except in compliance with
  the License. You may obtain a copy of the License at
  http://www.mozilla.org/MPL/

  Software distributed under the License is distributed on an "AS IS" basis,
  WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
  for the specific language governing rights and limitations under the
  License.

  The Original Code is leak-gauge.pl

  The Initial Developer of the Original Code is the Mozilla Foundation.
  Portions created by the Initial Developer are Copyright (C) 2005
  the Initial Developer. All Rights Reserved.

  Contributor(s):
    L. David Baron <dbaron@dbaron.org>, Mozilla Corporation (original author)

  Alternatively, the contents of this file may be used under the terms of
  either the GNU General Public License Version 2 or later (the "GPL"), or
  the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
  in which case the provisions of the GPL or the LGPL are applicable instead
  of those above. If you wish to allow use of your version of this file only
  under the terms of either the GPL or the LGPL, and not to allow others to
  use your version of this file under the terms of the MPL, indicate your
  decision by deleting the provisions above and replace them with the notice
  and other provisions required by the GPL or the LGPL. If you do not delete
  the provisions above, a recipient may use your version of this file under
  the terms of any one of the MPL, the GPL or the LGPL.

  ***** END LICENSE BLOCK *****
-->
<html lang="en-US">
<head>
<title>Leak Gauge</title>

<style type="text/css">
body {margin: 0; padding: 1em;}
pre { margin: 0; }
pre.output { border: medium solid steelblue; padding: 1em; margin: 1em; }
input {float:right}
h1 {display: inline}
</style>
<script type="text/javascript">

function run() {
    var result = "";

    // A hash of objects (keyed by the first word of the line in the log)
    // that have two public methods, handle_line and dump (to be called using
    // call, above), along with any private data they need.
    var handlers = {
        "DOMWINDOW": {
            count: 0,
            windows: {},
            handle_line: function(line) {
                var match = line.match(/^([0-9a-f]*) (\S*)(.*)/);
                if (match) {
                    var addr = match[1];
                    var verb = match[2];
                    var rest = match[3];
                    if (verb == "created") {
                        var m = rest.match(/ outer=([0-9a-f]*)$/);
                        if (!m)
                            throw "outer expected";
                        this.windows[addr] = { outer: m[1] };
                        ++this.count;
                    } else if (verb == "destroyed") {
                        delete this.windows[addr];
                    } else if (verb == "SetNewDocument") {
                        var m = rest.match(/^ (.*)$/);
                        if (!m)
                            throw "URI expected";
                        this.windows[addr][m[1]] = true;
                    }
                }
            },
            dump: function() {
                for (var addr in this.windows) {
                    var winobj = this.windows[addr];
                    var outer = winobj.outer;
                    delete winobj.outer;
                    result += "Leaked " + (outer == "0" ? "outer" : "inner") +
                              " window " + addr + " " +
                              (outer == "0" ? "" : "(outer " + outer + ") ") +
                              "at address " + addr + ".\n";
                    for (var uri in winobj) {
                        result += " ... with URI \"" + uri + "\".\n";
                    }
                }
            },
            summary: function() {
                var len = 0;
                for (var w in this.windows)
                    ++len;
                result += 'Leaked ' + len + ' out of ' +
                          this.count + " DOM Windows\n";
            }
        },
        "DOCUMENT": {
            count: 0,
            docs: {},
            handle_line: function(line) {
                var match = line.match(/^([0-9a-f]*) (\S*)(.*)/);
                if (match) {
                    var addr = match[1];
                    var verb = match[2];
                    var rest = match[3];
                    if (verb == "created") {
                        this.docs[addr] = {};
                        ++this.count;
                    } else if (verb == "destroyed") {
                        delete this.docs[addr];
                    } else if (verb == "ResetToURI" ||
                               verb == "StartDocumentLoad") {
                        var m = rest.match(/^ (.*)$/);
                        if (!m)
                            throw "URI expected";
                        this.docs[addr][m[1]] = true;
                    }
                }
            },
            dump: function() {
                for (var addr in this.docs) {
                    var doc = this.docs[addr];
                    result += "Leaked document at address " + addr + ".\n";
                    for (var uri in doc) {
                        result += " ... with URI \"" + uri + "\".\n";
                    }
                }
            },
            summary: function() {
                var len = 0;
                for (var w in this.docs)
                    ++len;
                result += 'Leaked ' + len + ' out of ' +
                          this.count + " documents\n";
            }
        },
        "DOCSHELL": {
            count: 0,
            shells: {},
            handle_line: function(line) {
                var match = line.match(/^([0-9a-f]*) (\S*)(.*)/);
                if (match) {
                    var addr = match[1];
                    var verb = match[2];
                    var rest = match[3];
                    if (verb == "created") {
                        this.shells[addr] = {};
                        ++this.count;
                    } else if (verb == "destroyed") {
                        delete this.shells[addr];
                    } else if (verb == "InternalLoad" ||
                               verb == "SetCurrentURI") {
                        var m = rest.match(/^ (.*)$/);
                        if (!m)
                            throw "URI expected";
                        this.shells[addr][m[1]] = true;
                    }
                }
            },
            dump: function() {
                for (var addr in this.shells) {
                    var doc = this.shells[addr];
                    result += "Leaked docshell at address " + addr + ".\n";
                    for (var uri in doc) {
                        result += " ... which loaded URI \"" + uri + "\".\n";
                    }
                }
            },
            summary: function() {
                var len = 0;
                for (var w in this.shells)
                    ++len;
                result += 'Leaked ' + len + ' out of ' +
                          this.count + " docshells\n";
            }
        }
    };

    netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");

    const cs = Components.classes;
    const ifs = Components.interfaces;

    var filePicker = cs["@mozilla.org/filepicker;1"].
                         createInstance(ifs.nsIFilePicker);
    filePicker.init(window, "Select NSPR Leak Log", ifs.nsIFilePicker.modeOpen);
    if (filePicker.show() != ifs.nsIFilePicker.returnOK)
        return;

    var is = cs["@mozilla.org/network/file-input-stream;1"].
                 createInstance(ifs.nsIFileInputStream);
    const PR_RDONLY = 0x01;
    is.init(filePicker.file, PR_RDONLY, 0, 0);
    if (!(is instanceof ifs.nsILineInputStream))
        return;
    var line = { value: "" };
    do {
        var more = is.readLine(line);// yuck, returns false for last valid line

        // strip off initial "-", thread id, and thread pointer; separate
        // first word and rest
        var matches = line.value.match(/^\-?[0-9]*\[[0-9a-f]*\]: (\S*) (.*)$/);
        if (matches) {
            var handler = matches[1];
            var data = matches[2];
            if (typeof(handlers[handler]) != "undefined") {
                handlers[handler].handle_line(data);
            }
        }
    } while (more);

    for (var handler in handlers)
        handlers[handler].dump();
    if (result.length)
        result += "\n";
    result += "Summary:\n";
    for (var handler in handlers)
        handlers[handler].summary();

    var out = document.createElement("pre");
    out.className = "output";
    out.appendChild(document.createTextNode(result));
    document.body.appendChild(out);
}

</script>
</head>
<body>
<input type="button" onclick="javascript:run()" value="Проанализировать" />
<h1>Leak Gauge</h1> 
<blockquote>Транслят бай Dark-Demon</blockquote>

<pre>$Id: leak-gauge.html,v 1.6 2006/01/14 00:27:41 dbaron%dbaron.org Exp $</pre>

<p>Сей скрипт предназначен для выявления утечек памяти.</p>

<p>Чтобы включить ведение браузером логов выделения и освобождения памяти следует перед запуском браузера установить следующие системные переменные:</p>
<pre>  NSPR_LOG_MODULES=DOMLeak:5,DocumentLeak:5,nsDocShellLeak:5
  NSPR_LOG_FILE=nspr.log     <i>(или любое другое имя файла)</i></pre>
<ul>
<li>В виндовой консоли это делается так (хотя, под XP SP2 у меня это не прокатило - пришлось устанавливать их в Свойства системы -> Дополнительно -> Переменные среды"):
<pre>    set VAR=value</pre></li>

<li> In an sh-based shell such as bash, set environment variables with
<pre>    export VAR=value</pre></li>
<li>In a csh-based shell such as tcsh, set environment variables with
<pre>    setenv VAR value</pre></li>
</ul>

<p><strong>Этот скрипт не заработает, если эта страница будет открыта из сети - она должна быть открыта с локального диска. 
Этот скрипт работает только в Mozilla-based браузерах.
Когда вы нажмете на кнопку, вам будет выдано предупреждение, ответьте утвердительно.
Будьте внимательны: при каждом запуске браузера файл с логами обнуляется.</strong></p>

<h2>Как это работает?</h2>
<p>Запустите браузер, поработайте с ним какое-то время и закройте. Скопируйте файл с логами куда-нибудь (иначе он будет стерт при запуске браузера). Запустите браузер, откройте эту страницу, нажмите на кнопку "Проанализировать" и укажите скопированный вами файл с логами</p>

<p>Другой вариант. Запускайте браузер посредством прилагающегося "leaks.bat" тогда указанные выше переменные будут прописаны автоматически. Логи будут вестить в файл "leaks.log", а логи предыдущей сессии будут переименованы в "leaks.txt". В остальном все аналогично: запустите браузер, поработайте с ним, закройте, снова откройте, перейдите к этой странице, нажмите на кнопку "Проанализировать" и укажите файл "leaks.txt"</p>

<h2>И что дальше?</h2>
<p>А дальше смотрим результаты. Если мы видим только пару утечек, происходящих один раз за всю сессию, то беспокоиться не стоит (хотя, если вы - разработчик, то рекомендуется всеже исправить код), если же мы видим множественные утечки пропорциональные числу посещенных страниц, то можно паниковать ;) Попробуйте поотключать какие-либо расширения - в большинстве случаев виноваты именно они.</p>
</body>
</html>

а вот содержимое упомянутого батничка:

Выделить код

Код:

set NSPR_LOG_MODULES=DOMLeak:5,DocumentLeak:5,nsDocShellLeak:5
set NSPR_LOG_FILE=%cd%\leaks.log
del /Q leaks.txt
ren leaks.log leaks.txt
firefox.exe

Почему-то этот leak detector каждый раз придобавлении страницы в закладки выдаёт утечку :/

Serg_T

Почему-то этот leak detector каждый раз придобавлении страницы в закладки выдаёт утечку

Так и есть. Читай как вызывать утечки на http://dbaron.org/mozilla/leak-monitor/

Иногда балуюсь программами оптимизации системы, в надежде увидеть в них что-нибудь "этакое", хотя и не доверяю им. Есть такая вещь TuneUp Utilities, кому-то она будет даже полезная.
Смотрите прикол:
TAU.png