Зачем браузеру столько памяти ?

Компьютеры, программы, периферия, коммуникации, интернет, программирование и т.п. Ранее назывался Hard-n-Soft.
Сообщение
Автор
Wiz
ШИЗО
Благодарил (а): 45 раз
Поблагодарили: 34 раза

№ 0 Сообщение Wiz » 03 май 2016 17:50

источник: https://toster.ru/q/17011

Зачем браузеру столько памяти ?

Вопрос:

Уже давно люди жалуются на потребление браузерами невероятных количеств оперативки, уже даже перестали жаловаться потому, что приелось. Но мне не дает покоя вопрос: что же они там хранят в таких количествах? Мой Хром иногда умудрялся съесть 200Мб на одну вкладку — это же просто поразительный объем даже, если представить десяток по настоящему больших картинок и и массу текста в js css html. Может кто знает?

Ответы:

Возьмем картинку размером 1000×1000. Она одна в распакованном виде замет 4 мегабайта. А ведь она может быть на странице не одна. Возьмем jQuery (без плагинов), он только в ходе загрузки создаст кучу замыканий и массивов, которые займут память. А ведь люди еще и плагинов всяких наподключают, чтобы мало не показалось. Потом, в ходе парсинга HTML, надо выделять память под DOM. W3C каждый день без устали придумывает аттрибуты тегов и css-свойства, и под каждое нужно выделять память.

Также, в памяти могут храниться ресурсы предыдущей страницы для быстрого срабатывания кнопки «назад».

Явасрипт-код может сохранять данные в массивах/переменных в глобальной области видимости, и они не освободятся до закрытия или перезагрузки страницы.

Дальше. Если у вас в браузере не запрещен флеш, наверняка на стрнанице есть 1-2 баннера и может еще какие-нибудь невидимые flash-компоненты. Они требуют создания для них потоков и памяти для хранения ресурсов и всякого хлама.

Еще дальше. Наверняка на странице есть кнопки Like/+1, вход через соцсети и прочая нечисть. Они. как правило, создают отделбный ифрейм, и в особо запущенных случаях, грузят в него скрипты, jQuery с 10 плагинами и CSS. То есть каждая такая кнопка становится сопосставима по расходам ресурсов с обычной веб-страницей.

Идем дальше. Наверняка у автора есть расширения в Хроме? Каждое расширение имеет свой DOM и JS контекст, то есть соответствует открытой веб-странице. а может у автора фаерфокс с firebug? Тогаж память вообще будет уходить немеряно.

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

Теперь посмотрим на разработчиков Chrome из компании Google. Устав бороться с кривыми и глючными библиотеками, они подошли к решению проблемы радикально — разнесли в отдельные процессы браузер, вкладки и плагины.

Стоит ли говорить, что в плане производительности это отнюдь прироста не дает. Также. авторы Хрома не стесняются добавлять в него библиотеки типа ICU.dll весом в 11 мегабайт, исключительно для того, чтобы правильно сортировать какую-нибудь никому не нужную ханойскую письменность. Видимо, у сотрудников Гугла компьютеры с таким количеством памяти, что 11 мегабайт для них ничего не говорят.

Кстати, в Хроме удобно смотреть сколько памяти онимает конкретная страница или расширение (Shift + Esc). Например, добавив на HTML-страничку тег SCRIPT, мы видим как потребление памяти подскакивает с 4 до 11 Мб (подгрузился хваленый v8).

А ведь все это, как вы догадываетесь, отнюдь не предел для современных школоразработчиков. Новые JS-фреймворки, новые HTML 5/CSS3 свойства и прочие радости еще ждут нас впереди.

А, если автор повелся на обещания маркетологов и купил 64-битный процессор, то программы начинают потреблять где-то раза в 2 больше памяти. То есть, покупая такой процессор, стоит сразу же закупать в 2 раза больше памяти, чем хватило бы на 32-битной системе.

а я, пока память дешевая, поставил 16 гб и не парюсь) я даже не то, что похвастаться хочу, всем советую просто…

Одна из главных проблем — это DOM и прорисовка. из-за текущих спецификаций CSS, современным браузерам приходится создавать огромное количество объектов синхронизации для DOM-элемента и графического представления. особенно это может проявляться при большом использовании inline-блоков и таблиц.
так, например, на больших страницах типа википедии это может даже приводить к лагам при прокрутке определенных мест на странице.

Столько памяти съедают утечки в js-скриптах.

Даже, если сайт имеет идеальный код, не факт, что он будет стабильно работать с вашими расширениями.

Как Вам вот такая картина, вкладка facebook over 700Мб. Тоже так и не удалось победить. Так что пора смириться просто и ждать развязки.

http://habrahabr.ru/qa/16773/

Хром многопроцессный.

Откройте диспетчер задач Chrome Shift+Esc и посмотрите какой процесс использует много памяти. И соответственно принимайте меры. Если это какое-то расширение, то удаляйте. Если это, например, флеш плагин, то зайдите на страницу плагинов и отключите один из флеш плагинов (их обычно два).

Потому-что он «кэшит» фэйсбук (и другие приложения и их данные, таблицы гугла и пр.)

Helen
Благодарил (а): 5 раз
Поблагодарили: 68 раз

№ 1 Сообщение Helen » 05 май 2016 12:02

Wiz пишет:

> а я, пока память дешевая, поставил 16 гб и не парюсь) я даже не то, что похвастаться хочу, всем советую просто…


...(ругается страшными словами) тот кто это написал, пробовал хоть раз в спящий режим свой компьютер переводить и потом из него выходить?
На маленькой памяти это получается быстрее, чем загрузить Windows.
Но начиная с 4 гб - это долго. Не говоря уже про место на диске.
И, между прочим, увеличение памяти с 2 до 4 гб прироста в скорости работы практически не дало. Firefox ест всё те же 1 - 1.5 гб, (ещё видео - 0.5-0.8 гб) но, несмотря на то, что памяти стало хватать, быстрее в общем-то не стало.
А вот скорость восстановления из спящего режима удвоилась моментом. Да и скорость ухода в него упала.

Мне интереснее другое - почему после закрытия программы так долго очищается память (после выхода из Firefox скорость входа-выхода в спящий режим несравнимо меньше, чем на только что загруженном компьютере)

koval
Аватара пользователя
Благодарил (а): 11 раз
Поблагодарили: 34 раза

№ 2 Сообщение koval » 05 май 2016 12:53

1: Helen:
Ставь твердотельный накопитель и будешь счастлива.

Burg
Аватара пользователя
Зок-модератор
Благодарил (а): 14 раз
Поблагодарили: 138 раз

№ 3 Сообщение Burg » 05 май 2016 12:56

2: koval:
их пока не выбрасывают :)

Wiz
ШИЗО
Благодарил (а): 45 раз
Поблагодарили: 34 раза

№ 4 Сообщение Wiz » 05 май 2016 14:20

1: Helen:
а ждущий режим не пробовали использовать? при этом компьютер отключается и включается практически сразу, сброс на диск оперативной памяти при этом не происходит. системный блок отключается, остается напряжение только на оперативной памяти. все кулера, винчестера отключаются, наступают тишина :) правда, не всегда это работает, иногда комп при входе в ждущий режим зависает, и помогает уже только хард-reset или отключение питания. ну и также, недостаток этого, если во время простоя был сбой в эл. энергии, то компьютер придется грузить заново, и это будет равноценно аварийному отключению эл. питания системы. также из недостатков - например у меня приходится заново настраивать usb-мидиклавиатуру в cubase после выхода из спящего режима, хотя это и не трудно, просто зайти в меню, нажать и отпустить переключатель.

Вернуться в «Компьютерный форум»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 0 гостей