источник: 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 и посмотрите какой процесс использует много памяти. И соответственно принимайте меры. Если это какое-то расширение, то удаляйте. Если это, например, флеш плагин, то зайдите на страницу плагинов и отключите один из флеш плагинов (их обычно два).
Потому-что он «кэшит» фэйсбук (и другие приложения и их данные, таблицы гугла и пр.)
Зачем браузеру столько памяти ?
Wiz пишет:
> а я, пока память дешевая, поставил 16 гб и не парюсь) я даже не то, что похвастаться хочу, всем советую просто…
...(ругается страшными словами) тот кто это написал, пробовал хоть раз в спящий режим свой компьютер переводить и потом из него выходить?
На маленькой памяти это получается быстрее, чем загрузить Windows.
Но начиная с 4 гб - это долго. Не говоря уже про место на диске.
И, между прочим, увеличение памяти с 2 до 4 гб прироста в скорости работы практически не дало. Firefox ест всё те же 1 - 1.5 гб, (ещё видео - 0.5-0.8 гб) но, несмотря на то, что памяти стало хватать, быстрее в общем-то не стало.
А вот скорость восстановления из спящего режима удвоилась моментом. Да и скорость ухода в него упала.
Мне интереснее другое - почему после закрытия программы так долго очищается память (после выхода из Firefox скорость входа-выхода в спящий режим несравнимо меньше, чем на только что загруженном компьютере)
> а я, пока память дешевая, поставил 16 гб и не парюсь) я даже не то, что похвастаться хочу, всем советую просто…
...(ругается страшными словами) тот кто это написал, пробовал хоть раз в спящий режим свой компьютер переводить и потом из него выходить?
На маленькой памяти это получается быстрее, чем загрузить Windows.
Но начиная с 4 гб - это долго. Не говоря уже про место на диске.
И, между прочим, увеличение памяти с 2 до 4 гб прироста в скорости работы практически не дало. Firefox ест всё те же 1 - 1.5 гб, (ещё видео - 0.5-0.8 гб) но, несмотря на то, что памяти стало хватать, быстрее в общем-то не стало.
А вот скорость восстановления из спящего режима удвоилась моментом. Да и скорость ухода в него упала.
Мне интереснее другое - почему после закрытия программы так долго очищается память (после выхода из Firefox скорость входа-выхода в спящий режим несравнимо меньше, чем на только что загруженном компьютере)
1: Helen:
Ставь твердотельный накопитель и будешь счастлива.
Ставь твердотельный накопитель и будешь счастлива.
2: koval:
их пока не выбрасывают
их пока не выбрасывают
1: Helen:
а ждущий режим не пробовали использовать? при этом компьютер отключается и включается практически сразу, сброс на диск оперативной памяти при этом не происходит. системный блок отключается, остается напряжение только на оперативной памяти. все кулера, винчестера отключаются, наступают тишина
правда, не всегда это работает, иногда комп при входе в ждущий режим зависает, и помогает уже только хард-reset или отключение питания. ну и также, недостаток этого, если во время простоя был сбой в эл. энергии, то компьютер придется грузить заново, и это будет равноценно аварийному отключению эл. питания системы. также из недостатков - например у меня приходится заново настраивать usb-мидиклавиатуру в cubase после выхода из спящего режима, хотя это и не трудно, просто зайти в меню, нажать и отпустить переключатель.
а ждущий режим не пробовали использовать? при этом компьютер отключается и включается практически сразу, сброс на диск оперативной памяти при этом не происходит. системный блок отключается, остается напряжение только на оперативной памяти. все кулера, винчестера отключаются, наступают тишина
Кто сейчас на конференции
Сейчас этот форум просматривают: нет зарегистрированных пользователей и 0 гостей