LINUX.ORG.RU

«Утечки» памяти в Mozilla Firefox


0

0

Ben Godger - ведущий разработчик Mozilla Firefox - объясняет почему MoFo 1.5 использует так много памяти: вопрос состоит в том, что браузер хранит в ОЗУ до 8 срендеренных образов страниц для каждого tab'a. Согласно проведённым исследованиям, Opera 8.5 и IE7B2 используют сравнимый объём памяти. Для слабым машин рекомендуется не открывать слишком много страниц в tab'ах за раз или установить параметр browser.sessionhistory.max_total_viewers в 0, но тогда у вас не будет работать функция мгновенного перехода по истории вперёд и назад.

>>> Подробности

★★★★★

Проверено: Shaman007 ()

>вопрос состоит в том, что браузер хранит в ОЗУ до 8 срендеренных образов страниц для каждого tab'a.

По-моему 8 страниц для каждого таба - это слишком, мало кто, я думаю, ходит назад так далеко... 1-2 страницы для таба достаточно, ИМХО.

dotcoder ★★★★★
()
Ответ на: комментарий от anonymous

>Наверняка эту величину можно поменять в конфигах где-то...

Я трещу с аномимов ... повость прочитай ... теперь ещё раз ... и так далее пока не поймёшь ...

vtVitus ★★★★★
()
Ответ на: комментарий от vtVitus

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

anonymous
()

может кто подскажет как сделать дистрибутив ФФ (для винды) с другими предустановками по умолчанию ? типа чтобы там прокся локальная уже была заранее прописана ну и так далее

Tester ★★★
()
Ответ на: комментарий от anonymous

>Этот параметр отрубает всю возможность сразу, а мы обсуждали возможность снизить кэширование с 8 образов до другой произвольной величины, не равной нулю.

А ты ставь не 0, а, скажем, 3.

blaster999 ★★
()
Ответ на: комментарий от anonymous

проблемы с алабнским ? прочитай внимательно max_total_viewers и включи воображение

Tester ★★★
()
Ответ на: комментарий от Tester

>может кто подскажет как сделать дистрибутив ФФ (для винды) с другими предустановками по умолчанию ? типа чтобы там прокся локальная уже была заранее прописана ну и так далее

Можно. На forum.mozilla.ru точно было про это. Попробуй там поискать

anonymous
()

> браузер хранит в ОЗУ до 8 срендеренных образов страниц для каждого tab'a

встречный вопрос, а зачем это хранить в ОЗУ? ОЗУ это слишком ценный ресурс, что бы хранить там всякий шлак типа срендеренных образов.

И про XUL не слово, это значит быстрый и памяти не кушает...

> Opera 8.5 и IE7B2 используют сравнимый объём памяти

Ну-ну, что-то вроде "Get The Facts" оказывается Opera 8.5 жрет памяти столько же как и Firefox 1.5. Тут даже на ЛОР'е люди втупую открывали по 10-15 табов в Opera и Firefox и смотрели сколько кто кушает памяти.

anonymous
()

Им надо сделать опцию browser.sessionhistory.max_tab_viewers :), чтобы можно было бы устанавливать кол-во страниц на таб :)

Интересно,

если я в одном табе открою одну страницу, и перейду по ней вперед на одну ссылку,

затем

в другом табе, также открою ту же самую страницу и перейду вперед на ту же самую ссылку,

то

будет ли ФФ хранит в памяти только одну копию предыдущей страницы для обеих табов, или же будет хранить по одной/отдельной копии на каждый таб?

dotcoder ★★★★★
()
Ответ на: комментарий от stassats

>...max_total_viewers - устанавливает максимальное кол-во кешированных, а не саму возможность.

Вы, наверное, имели ввиду опцию browser.sessionhistory.max_entries?

dotcoder ★★★★★
()
Ответ на: комментарий от ElectroNik

Ой, точно. Провтыкал.

> For those who remain concerned, here's how the feature works. Firefox

> has a preference browser.sessionhistory.max_total_viewers which by

> default is set to -1. When set to this value, Firefox calculates the

> amount of memory in the system, according to this breakdown:

KADABRA
()
Ответ на: комментарий от anonymous

> И про XUL не слово

Это как переводится на русский с албанского?

wRAR
()

Так вот почему лиса жрёт 100 метров памяти...

ИМХО это бред - почему нельзя на хард скидывать? На глаз не будет разницы, с харда или с памяти.

suser
()

> Для слабым машин рекомендуется не открывать слишком много страниц в tab'ах за раз или установить параметр browser.sessionhistory.max_total_viewers в 0, но тогда у вас не будет работать функция мгновенного перехода по истории вперёд и назад.

Как говорится, не счастья в жизни :)

AP ★★★★★
()
Ответ на: комментарий от suser

Я тоже за то, чтобы более "старые" страницы кэшировать на диске (, как это, видимо, делается в Опере).

dotcoder ★★★★★
()
Ответ на: комментарий от AP

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

igor00
()

Edit: In the comments, Boris and David pointed out that I misread the code, and that this is a global preference so that there are no more than 8 cached pages for the entire session, not per tab. My initial posting had claimed that it was per-tab. Oops!

szh ★★★★
()
Ответ на: комментарий от dotcoder

> По-моему 8 страниц для каждого таба - это слишком, мало кто, я думаю, ходит назад так далеко... 1-2 страницы для таба достаточно, ИМХО.

Ну так память сейчас дешёвая, так что можно не думать вообще. Особенно с учётом того, что многим это занятие, похоже, причиняет физические страдания.

yozhhh ★★★
()
Ответ на: комментарий от szh

Ага, еще лучше - на сессию... Если уж разработчик Ben Goodger (вот так правильно), не разбирается в параметрах, то... имхо, вся MoFo попахивает дилетантством, из-за этого и имеем WONT FIX=CAN'T FIX и т.д.

anonymous
()
Ответ на: комментарий от yozhhh

>Ну так память сейчас дешёвая, так что можно не думать вообще.

в результате на P4-3.2ГГц переключение закладок в Фоксе видно на глаз, а в Опере - на P3-1ГГц не видно... Вот так и бывает, когда разработчики браузера не думают. Вообще.

KRoN73 ★★★★★
()
Ответ на: комментарий от KRoN73

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

anonymous
()

> Ben Godger - ведущий разработчик Mozilla Firefox - объясняет почему MoFo 1.5 использует так много памяти: вопрос состоит в том, что браузер хранит в ОЗУ до 8 срендеренных образов страниц для каждого tab'a.

А память таки течёт. И текла в 1.0.x, где этой фичи ещё не было. Тут только есть одна тонкость. Неизвестно, КТО ИМЕННО течёт - сам ff или расширения. Кто-нибудь пробовал юзать несколько дней, не закрывая, ТОЛЬКО ff, без установленных расширений вообще?

yozhhh ★★★
()
Ответ на: комментарий от dotcoder

> если я в одном табе открою одну страницу, и перейду по ней вперед на одну ссылку,

А ты эксперимент проведи (сначала - в разными страницами, а потом - с одними и теми же). И на память посмотри. Доброе дело сделаешь :)

yozhhh ★★★
()
Ответ на: комментарий от anonymous

>я закрыл все закладки, а он память как жрал 120 так и жрет.

вот это больше всего раздражает.

Lem_I
()
Ответ на: комментарий от anonymous

Интересно в скольких проектах размера FF учавствовал глубокоуважаемый?

eXOR ★★★★★
()
Ответ на: комментарий от AP

> Как говорится, не счастья в жизни :)

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

yozhhh ★★★
()
Ответ на: комментарий от szh

> Edit: In the comments, Boris and David pointed out that I misread the code, and that this is a global preference so that there are no more than 8 cached pages for the entire session, not per tab. My initial posting had claimed that it was per-tab. Oops!

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

yozhhh ★★★
()
Ответ на: комментарий от KRoN73

> в результате на P4-3.2ГГц переключение закладок в Фоксе видно на глаз, а в Опере - на P3-1ГГц не видно... Вот так и бывает, когда разработчики браузера не думают. Вообще.

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

yozhhh ★★★
()

Не знаю, как там с памятью, не замечал. Но почему он так нагружает процессор?

При открытии на ноутбуке одних и тех же страниц в IE 6.0, Opera 8 и FF 1.0.7, первые два открывают спокойно, не "нагревая" машину, а FF грузит настолько, что кулер врубается на полную мощность. В результате - шум, работать невозможно.

Можно ли на него как-нибудь повлиять?

anonymous
()
Ответ на: комментарий от yozhhh

>А ты эксперимент проведи (сначала - в разными страницами, а потом - с одними и теми же). И на память посмотри. Доброе дело сделаешь :)

100 пудов что разные. По другому и быть не может - там же динамический контент всякая там анимация жаваскипция и т.д. Уж не говоря о то что страницы с одного урла - не значит одни и те же страницы.

r ★★★★★
()

Про opera нагнали. Она нормально вылизана, в отличие от... Кстати, в mozilla-1.4 уже было вылизано достаточное число мест с утечками, а теперь опять двадцать пять.

a1s2d3
()
Ответ на: комментарий от ogion

> Если бы он еще эту памать обратно отдавал бы при закрытии таба...

Это проблема/свойство реализации free() в ядре. То есть, возможно он и отдаёт (самому себе на будущее) памать, только ядро никогда не уменьшает используемую память процесса, лишь увеличивает.

> В результате - шум, работать невозможно. Можно ли на него как-нибудь повлиять?

Отключи flash, кушает CPU немеряно. Далее можно пробовать отключить java/javascript/другие плагины/расширения/анимационные gif-ы.

Вообще, использовать firefox невозможно на машине со слабой памятью. После пары дней использования (посещены 50 страниц, 15 табов) кушает 200Мб, приходится выходить-входить постоянно.

"Любой программе должно с головой хватать 64Kb (или там говорилось про 640Kb?)."

mihalych ★★★
()
Ответ на: комментарий от mihalych

> Это проблема/свойство реализации free() в ядре. То есть, возможно он и отдаёт (самому себе на будущее) памать, только ядро никогда не уменьшает используемую память процесса, лишь увеличивает.

Очень интересно. А когда память в системе закончится, начнём килять приложения, да?

anonymous
()
Ответ на: комментарий от mihalych

>Вообще, использовать firefox невозможно на машине со слабой памятью. >После пары дней использования (посещены 50 страниц, 15 табов) кушает >200Мб, приходится выходить-входить постоянно.

Вот поэтому до сих пор на нормальной мазиле. Неделями работает и 90 метров отжирает. Много, конечно, но терпимо.

vtVitus ★★★★★
()
Ответ на: комментарий от vtVitus

ФФ был продан асой гуглу, поэтому он и капытится

anonymous
()
Ответ на: комментарий от anonymous

> А когда память в системе закончится, начнём килять приложения, да?

Ну, никто не заставляет запускать протекающие приложения безостановочно и в возрастающем количестве.

Вообще-то, firefox мог бы и обойти эту проблему/свойства ядра (да и свою протекаемость тоже), запуская отдельный процесс (а может и тред) на таб, тогда закрытие таба реально освобождало бы всю его память. Но кто же в наши дни будет заниматься IPC ради оптимизации памяти. :)

mihalych ★★★
()
Ответ на: комментарий от anonymous

120! Счастливчик! У меня стандартный размер сожранной памяти - 800-1500 Мб, хорошо, что на серваке 8 гигов... :)

anonymous
()
Ответ на: комментарий от zer_sl

У мну дето метров по 300-400 жрёт. Абидна. А брозер неплох, кстати, когда я переполз на мазилку с оперы - енто был именно фиребирд, он мне и счас нравится, но вот экстеншинов к нему счас не нароеш нигде, никто не подскажет? Тот просто не течёт так мощно, быстрее вроде. ?

manowar ★★
()
Ответ на: комментарий от mihalych

> Ну, никто не заставляет запускать протекающие приложения безостановочно и в возрастающем количестве.

"Протекающие" - это периодически берущие память и отдающие её через free? Так чё, если я напишу тестик, который будет в цикле брать и освобождать память, то через сколько миллисекунд оно само или вся система совершит подвиг имени Томми?

anonymous
()
Ответ на: комментарий от szh

Вот именно! Этот Ben Goodger сам не знает, о чём говорит, специалист, тоже мне. Он кроме кривого GUI вообще ничего делать и не умеет, спасибо нужно говорить тов. David Baron и тов. Борису Збарскому, которые действительно является профессионалами и работает над движком.

km ★★★
()
Ответ на: комментарий от km

> Ben Goodger is the lead engineer for Mozilla Firefox.

Йооооооптттт... С этого надо было начинать. Говорящая обезьяна, мля. У РАЗРАБОТЧИКОВ спрашивать надо, а не у рабовладельцев.

anonymous
()
Ответ на: комментарий от km

Boris: "Ben, those numbers are NOT per tab"

Вот что ему, собственно, ответили "настоящие ребята":

Ben, those numbers are NOT per tab. The bfcache is global; there are never more than 8 pages total in bfcache (and you need to have 1GB of RAM for this to happen). Most users have 3 or 5 pages in bfcache at any given time.

Posted by: Boris Zbarsky at February 14, 2006 01:33 PM

The point of bug 292965 was that the pref should be global, not per-tab. Is that not working correctly?

Posted by: David Baron at February 14, 2006 01:34 PM

km ★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.