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 ()
Ответ на: Boris: "Ben, those numbers are NOT per tab" от km

А кто объяснит, почему если при открытых табах открыть ссылку в новом окне (не табе) ФФ может по настроению отъедать до 70% процессора и заметно тормозить систему. Потом все в порядке, но не приятно, тем более машинка не слабая p4 2.8

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

У меня такое на медленных соединениях было.

WFrag ★★★★
()

ФФ, судя по пиару, самый лучший глюк года.

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

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

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

Ну, я имел в виду ФФ под виндой. Как он под линухом работает -- не в курсе, т.к. там я обычную мозиллу 1.7.x пока использую.

ogion ★★
()

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

Если создать целочисленный параметр 'browser.cache.memory.capacity' FF прилично похудеет! У меня обычно стоит 4096 .

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

Закон Бена:
Каждые два года объем памяти, потребляемой нашим браузером, будет увеличиваться в два раза!
:)

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

Если операционка + гуй за это время будет утраивать аппетиты, это будет хороший браузер, сэр)

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

> Ну, я имел в виду ФФ под виндой.

Уверенно идём путём жабы, т.е. в биореактор?

anonymous
()

Меня, когда мало было памяти и хилый проц, спасала только Опера. С мозиллой (и с фаерфоксом) тормоза были более сильными. Ну, это так, субъективное впечатление ;)

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

Ха-ха. Криворукие разработчики распиаренного и разрекламированного кустарного поделия под названием "FireFox" в очередной раз опозорились.

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

Та же Opera жрет в разы меньше. Особенно если на рыжего енота (FF) навешать экстеншенов - к уже существующим утечкам памяти добавятся утечки, вызываемые левыми расширениями. А без экстеншенов, как известно, работать в еноте нельзя - ведь нельзя же юзать FF в его убогой дефолтной комплектации.

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

Лол. Сперли у Оперы функцию быстрого перехода "Назад" и "Вперед" по посещенным страницам (в ней эта "фича" была и есть уже много лет), но тем не менее, реализовали эту фичу через задницу. С треском опозорились, зарвавшиеся быдлокодеры :). Хорошо хоть признали существование проблемы, подписавшись в своей некомпетентности.

>Закон Бена: Каждые два года объем памяти, потребляемой нашим браузером, будет увеличиваться в два раза!

Этот закон верен только в том случае, если вы используете кривые программные поделки типа Тормозилло ФуфлоФокс. К счастью, есть и другие(нормальные) браузеры с нормальным подходом к разработке и с адекватными системными требованиями.

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

>Так вот почему лиса жрёт 100 метров памяти...
100 метров... Она гигабайтами жрет. У меня машина вообще не выключается отжирает за неделю гиг и ей становится плохо - подсовываю гиг свопа - через некоторое время то-же отжирает - потом еще гиг - еще отжирает. Потом выключаешь ее и она всю память долго и очень-очень печально осовобождает...
Моя поставил однако 3 гига свопа себе - актуально однако стало !!!

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

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

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

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

Вот только не надо мне на ноутбучный хард всякий мусор скидывать!!! Он от этого изнашивается быстрее.

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

> А кто объяснит, почему если при открытых табах открыть ссылку в новом окне (не табе) ФФ может по настроению отъедать до 70% процессора и заметно тормозить систему. Потом все в порядке, но не приятно, тем более машинка не слабая p4 2.8

Я в шоке. Такое только в IE видел при переходе по ссылкам. Нет, вы все правду пишите или прикалываетесь?!

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

> Моя поставил однако 3 гига свопа себе - актуально однако стало !!!

Я теперь понял, откуда берутся хЕрурги, удаляющие гланды через задний проход. А не судьиа просто поставить sessionsaver и выключать ff раз в день?

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

> И вообще - не понимаю, что за порнуху вы в Firefox глядите! У меня жрёт 40 мегов в среднем.

Кстати, да. Господа, у которых ff ест память гигабайтами. Расскажите, какие у вас стоят extensions.

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

> Я в шоке. Такое только в IE видел при переходе по ссылкам. Нет, вы все правду пишите или прикалываетесь?!

Правду. У меня при открытии линка в новом табе mplayer заикается.

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

У меня жрёт до 400 метров %) то есть при её киле имемм стоко освобождения. Екстеншны - адблок, флешблок, кнопка с вырублением картинок, таббровсер преференсез и тема ред кет. УСЁ. Но 300-400 метров жрёт стабильно %) Достало уже. Думаю жрало б больше, если б было больше рамы %) Кстати, оно ещё своп пользует - сколько юзал лялих, у мну никогда не юзался своп ещё %) до фирфокса ) Я пользовал оперу изза тормозов мозилки %) Когда появился огнептиц - переплыл на него, было имхо рулз вполне. А счас? Обратно на оперу не хочу - не красиво както да и не удобно, адблока там нету нормального (через жопу есть %)).

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

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

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

Плохо у вас с пониманием прочитанного, гражданин. Да хоть в бесконечном цикле делай free(malloc(1e8)); Будет такая программа 100Мб кушать, так как это максимальный суммарный запрос в любой заданный момент. И через сутки такого цикла потребление памяти не изменится (ну, если не протекает в другом месте).

Но вот одинажды получив 100Мб, потребление не уменьшится пока процесс не завершится. Рационал таков, велика вероятность, что в ближайшем будущем программе опять понадобится столько же памяти, и нечего зря высвобождать. Хотя вполне вероятно, что в экстренных ситуациях всё же потребление процессом памяти может уменьшиться (скажем при swapoff или другом перерасходе).

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

чушь это - сами проверьте.
сделайте malloc на 40 mb посмотрите ps,
затем free а затем опять malloc на 20
и убедитесь как VIRT и RES уменьшаются.
Другое дело pixmaps на стороне Xservera,
они не освобождаются при закрытии таба
посмотрите на xrestop после отрытия картинок
и на то что VIRT и RES процесса почти не растет.

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

> А кто объяснит, почему если при открытых табах открыть ссылку в новом окне (не табе) ФФ может по настроению отъедать до 70% процессора и заметно тормозить систему.

У меня такие подвисания даже случаются при открытии пустого Tab'a.

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

> Но вот одинажды получив 100Мб, потребление не уменьшится пока процесс не завершится. Рационал таков, велика вероятность, что в ближайшем будущем программе опять понадобится столько же памяти, и нечего зря высвобождать. Хотя вполне вероятно, что в экстренных ситуациях всё же потребление процессом памяти может уменьшиться (скажем при swapoff или другом перерасходе).

А если память кончится, а надо ещё приложение запустить? Всё, пипец? Как собака на сене, да? Сам не юзаю и другим не даю? Ну так вот, печальные результаты этого дебилизма мы и наблюдаем.

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

>А не судьиа просто поставить sessionsaver и выключать ff раз в день?
А нафига мне выключать его раз в день если у меня машина перегружается исключительно только для смены ядра раз в пару месяцев ? Это что типа удобно каждый день ее выключать ? Мне проще ей своп подсунуть если она так написана что все больше и больше памяти начинает просить даже без открытия новых табов !

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

>Кстати, да. Господа, у которых ff ест память гигабайтами. Расскажите, >какие у вас стоят extensions.
От них похоже ничего не зависит. Она так себя вела и вообще без них и сейчас ведет (сейчас стоят adblock и flashblock)

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

>Верно, VIRT и RES могут уменьшаться, но не всё так просто, как может >показаться на примере простой програмки.
ну и объясните даже если это сложно.

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

> ну и объясните даже если это сложно

Не сейчас. Мне для этого надо будет пару тестов посложней написать. Старые простые тесты работают не так, как пару лет назад. И я не могу сразу сказать из-за чего - обновлённого ядра с glibc или оптимизаций gcc. Надо будет найти время разобраться. :)

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

Сейчас у меня 22 таба открыто, днем FF занимал 133 метра памяти я его свернул в трей, а сейчас развернул - занимает 58 метров, память освободилась (FF 1.5 WinXP)

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