LINUX.ORG.RU
Ответ на: комментарий от Dimentiy

>>Нет, это обычный эффект фрагментации памяти.

>Значит, надо пулы использовать, а не оставлять как есть.

Есть там пулы. pr_Zone*alloc(...), см. mozilla/nsprpub/pr/src/malloc/prmem.c

На linux этот кусок кода не используется, используется glibc'ные *alloc, free.

Далее, на OpenBSD 3.* проблемы с памятью у FF нет вообще, взад память возвращается при закрытии страниц, т.к. там *alloc/free не используют sbrk(). Исходный код FF тот же самый везде.

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

звиняйте, товарищ mr уже тему осветил :)

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

> Только что мешает сделать в FF прослойку между glibc и выделением памяти на уровне языка (суть написать узкозаточенный Memory Manager и перегрузить new) - непонятно, увы :(

Для разных ОС разная прослойка, хлопотно.

Тем более, бОльшая часть пользователей mozilla-* сидит на Windows XP и 2000, в багзилле от них репортов нет о неотдаче памяти ==> разработчики не чешутся.

На OpenBSD 3.9 firefox просто _радует_ :)

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

Ммм... То, что в prmem.c/prmalloc.c -- это не pool, а некий zone-allocator, т.е. как обычный аллокатор, по крайней мере по сравнению с пулами apache разница очевидна.

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

ЗЫ в OpenBSD это аллокатор общего назначения из евойной llbc такой хороший.

Абыдно, что никто досирпох не собрал ево в отдельную библиотечку под linux для % LD_PRELOAD=./openbsd_alloc_free.so firefox &

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

> в prmem.c/prmalloc.c -- это не pool, а некий zone-allocator, т.е. как обычный аллокатор, по крайней мере по сравнению с пулами apache разница очевидна.

Возможно.

afair, он создает таки несколько арен (zone) вместо 1-2 с glibc.

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

Поскольку он выделяет их НЕ с помощью mmap, то это вряд ли может нам помочь.

А вот если бы firefox был написан с помощью пулов (как в apache), то это решило бы проблему лучше всяких аллокаторов. Но, увы, жизнь в "режиме если не работает".

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

помочь не может.

pr*Zone*alloc по #ifdef собирается, похоже, только под win16 :)

Так штааа, OpenBSD спасет расейскую дерьмократию.

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

> Интерфейс Оперы самый быстрый из графических браузеров.

А Dillo все равно длиньше, толще и всяко приятнее. И рвет он Оперу как бобег грелку.

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

>И рвет он Оперу как бобег грелку.

По скорости отрисовки - всего вдвое.

По всему остальному - даже не смешно. Всё равно, что инвалида, без рук, без ног, но зато лёгкого, с нормальным человеком сравнивать :D

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

У dillo с русскими кодировками проблема. Да и на лор с ним не залогинишься. Тогда уж лучше elinks, если хочется минимализма и скорости.

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

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

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

>KRoN73 таки повелся .

Мне тут параллельно ругаться на два фронта приходится и в фоновом режиме разбираться, почему dom4j не хочет собираться :)

KRoN73 ★★★★★
()

Насчет применения сплошь mmap() еще можно поспорить. Отрицательным моментом этого способа выделения памяти является AFAIK необходимость выделения памяти размером со страницу (например, 4K), даже если вам нужен один байт памяти. Однако я видел у кого-то в блоге предложение гибридного способа выделения, но вот где -- не помню.

Сейчас в glibc способ такой. Есть watermark в 128K. Если запрос на выделение памяти идет до этого значения, то используется sbrk(). Если больше, то mmap(). Это так, если еще ничего не поменяли с тех пор.

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

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

Как glibc выделяет память я знаю, для firefox это очень плохо подходит.

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

Заставить заработать его под линуксом сходу не удалось (см. стр. по ссылке из моего профиля, если интересно).

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

> Хватить кормить народ недостоверной информацией. Кнопки "Вперед","Назад" грузят все барахло (или проверяют на адекватность, не суть важно) их инета по новой. Мгновенного "назад" как в Опере в ФФ нет. Давайте учитьс я не врать в первую очередь себе. Всегда юзал и юзаю ФФ (из-за пары плагинов, личных предпочтений и нелюбви некоторых сайтов к Опере), но Опера стоит также на компе и сскоростью работы, красотой и просто продуманностью она ОЧЕНЬ радует.

Расширение Fasterfox -- мгновенное перемещение "Вперёд" и "Назад". С этим расширением лиса стала реактивной. -1 довод любителям Оперы. ;)

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

>> FF - хорош , но постоянные 10-15 секундные "замерзания" всей системы из-за него всеми его наворотами не окупаются.

>Ни хрена себе. Это чем же ты так засрал систему, что у тебя 10..15-секундные паузы? Делись. Ни разу такого не видал.

Видел такую беду в фф в виндовсе. Толи какое-то расширение засрало профиль, толи ещё что-то, х.з., но после одного из апдейтов самого фф стало тормозить зверски при открытии .png картинки занимающей весь экран, плюс при старте закачки фф замерзал секунд на 10-15. Свежая версия фф с кучей плагинов не тормозит нигде и ни на чём.

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

Сейчас одна из основный проблем с ФФ и мозилой неадекватная работа с памятью, об этом и говорят весьма много

:-)

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

...только делать -- никто ничего не делает

:-)

...

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

>Расширение Fasterfox -- мгновенное перемещение "Вперёд" и "Назад". С этим расширением лиса стала реактивной. -1 довод любителям Оперы. ;)

Fasterfox не для этого предназначен. Вы бы поинтересовались сначала принципом работы этого расширения - от него есть польза только только тогда, когда коннект жирный (эдак 10 Mbit/s) позволяет. На низких и средних по скорости коннектах от него вообще толку никакого.

Мгновенное перемещение "Вперёд" и "Назад" в Firefox не имеет никакого отношения к расширениям. Это встроенная фича (с оглядкой на многолетнее присутствие данной функции в Опере), которую приделали в Firefox начиная с версии 1.5. Только реализованная сия фича в Фоксе криво и хромает на обе ноги:

1. Утечки памяти. Память занятая под посещенные страницы (для "мгновенного" к ним возврата) имеет свойство не высвобождаться.

2. "Мгновенный" возврат в Firefox в действительности не мгновенный. Зачастую, при навигации "вперед" и "назад" можно наблюдать задержки, а некоторых случаях и подгрузку элементов "закэшированной" страницы.

В Opera уже не первый год существует истинный "instant back" - без задержек, с моментальной прорисовкой.

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

> 1. Утечки памяти. Память занятая под посещенные страницы (для "мгновенного" к ним возврата) имеет свойство не высвобождаться.

Стоп. FF сознательно не делает free() на выделенную под кэшированные страницы память, если страница выбрасывается из кэша?

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

>Стоп. FF сознательно не делает free() на выделенную под кэшированные страницы память, если страница выбрасывается из кэша?

Вроде не сознательно. Но проблема есть. Об этом писал один из разработчиков Firefox в своем блоге. Исходя из того поста многие сделали вывод, что утечки памяти в лисе это фича браузере (со слов разработчиков).

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