Можно ли обвинить Google Chrome в высоком использовании оперативной памяти и низкой производительности?

На моем Mac OS X существенно отстает при просмотре через Chrome. Я исследовал вещи и понял, что неактивная память является частью свободной памяти, которую можно и нужно освобождать в любой момент:

Даже открытие новой вкладки, прокрутка Facebook или Gmail замедляют работу. У меня есть Macbook Pro 13 дюймов начала 2011 года, 8 ГБ ОЗУ, OS X Mountain Lion.

Могу ли я каким-либо образом повлиять на использование оперативной памяти Chrome?

Редактировать: спасибо @bmike, отличная редакция! Я просто хочу прояснить, что я также возился с плагинами и расширениями в настройках Chrome, даже с chrome://flags. Экземпляр Flash действительно является большой проблемой, поэтому у меня есть встроенный блокировщик флэш-памяти и встроенный блокировщик флэш-памяти Chrome.

Мне было интересно, имеет ли это какое-либо отношение к тому, что в моем MBP не используется память Mac?

Немного непонятно, что вы здесь спрашиваете. Вы ищете способы уменьшить объем оперативной памяти для Chrome, хотите понять, как работает неактивная память, или вы ищете что-то еще?
После долгих поисков я понял, что Apple действительно намерена обрабатывать неактивную оперативную память. И многие пользователи страдают от этой проблемы. Так что я думаю, что нет никакого решения для этого. Мой вопрос заключается в том, есть ли способ не позволить хрому тратить ОЗУ впустую, так как иногда при открытии всего 10 вкладок неактивная ОЗУ увеличивается до 3 ГБ, и все становится вялым. Спасибо.
Этот сайт позволяет людям изменять/редактировать свой вопрос, поэтому не могли бы вы сделать это, чтобы перефразировать его в соответствии с вашим комментарием, а затем нажать «повторно открыть»?
Удивительная редакция @bmike, привела Q в очень хорошую форму, спасибо за это! Стоит отметить: один экземпляр SWF, мошеннический скрипт или расширение могут истощить всю память и даже хуже.
@brasofilo Я согласен, что в Chrome есть много места для изучения. Я не самый лучший человек, так как мне удобнее работать с unix/vm и с тем, как профилировать приложение. Я думаю, мы все можем согласиться, что здесь важен не браузер, а то, какие сайты загружают контент из браузера. Я считаю, что в Chrome есть отличные инструменты профилирования, но я могу просто погуглить, так что я надеюсь, что кто-то еще с практическим опытом сможет подойти.
@bmike, я в основном хвалил редактирование и добавлял некоторую полезную информацию, чтобы не быть комментарием не по теме;) Но я думаю, что корреляция Chrome-> RAM на самом деле не проблема Apple.

Ответы (3)

Вот образцы данных с моего 13-дюймового MacBook Pro с 8 ГБ ОЗУ до и после открытия Chrome:

Mac:~ bmike$ vm_stat
Mach Virtual Memory Statistics: (page size of 4096 bytes)
Pages free:                         212512.
Pages active:                       931907.
Pages inactive:                     381136.
Pages speculative:                   55403.
Pages wired down:                   515533.
"Translation faults":            521414918.
Pages copy-on-write:               9952178.
Pages zero filled:               465150147.
Pages reactivated:                   93725.
Pageins:                           1567093.
Pageouts:                             6081.
Object cache: 100 hits of 17386036 lookups (0% hit rate)
Mac:~ bmike$ open -a "Google Chrome"
Mac:~ bmike$ vm_stat
Mach Virtual Memory Statistics: (page size of 4096 bytes)
Pages free:                         136402.
Pages active:                       990000.
Pages inactive:                     392735.
Pages speculative:                   53707.
Pages wired down:                   523945.
"Translation faults":            521638787.
Pages copy-on-write:               9972877.
Pages zero filled:               465252021.
Pages reactivated:                   93725.
Pageins:                           1577678.
Pageouts:                             6081.
Object cache: 100 hits of 17386267 lookups (0% hit rate)

Настройка теста — это система, которая работала в течение 6 дней и в остальном не давала сбоев. Вот команды, которые я запускаю, чтобы убедиться, что система находится в равновесии:

Mac:~ bmike$ iostat 5
          disk0       cpu     load average
    KB/t tps  MB/s  us sy id   1m   5m   15m
   28.30   9  0.26   2  1 97  0.78 0.61 0.61
    0.00   0  0.00   0  1 99  0.72 0.60 0.60
   32.00   0  0.01   1  1 99  0.66 0.59 0.60
    0.00   0  0.00   0  1 99  0.61 0.58 0.59
^C
Mac:~ bmike$ vm_stat 5
Mach Virtual Memory Statistics: (page size of 4096 bytes, cache hits 0%)
  free active   spec inactive   wire   faults     copy    0fill reactive  pageins  pageout
210871 940704  53319   379363 512550  522503K  9987967  469254K    93725  1579260     6081 
210776 931311  53771   379369 521225     5150       10    32953        0        0        0 
211289 930966  53798   379369 521207     4606        0    57255        0        0        0 
211321 930971  53799   379369 521207     4589        3    45933        0        0        0 
211531 930998  53799   379369 520925    10999        0    77822        0        0        0 

Я настроил Google Chrome на 10 пустых вкладок и вышел из него, а затем запустил приведенный выше тест, чтобы точно измерить, сколько оперативной памяти изменяется до и после его запуска. Как вы можете видеть, запуск Chrome потребовал около 76 тыс. страниц свободной памяти для свободного пула и привел к увеличению неактивного пула примерно на 11,5 тыс. страниц.

Учитывая эти цифры, маловероятно, что Chrome сам вызывает утечку, а ваши веб-страницы могут вызывать нагрузку. Если вы можете запустить эти инструменты в терминале, вы, вероятно, увидите, что в вашей системе были другие проблемы с управлением памятью, и Chrome, вероятно, является соломинкой, которая оказывает окончательную нагрузку на систему, прежде чем она начнет подкачку. Ищите активность подкачки перед запуском Chrome, а также посмотрите мой ответ здесь о том, почему неактивная память почти никогда не является реальной проблемой, и этот пост, надеюсь, объясняет, как убедить себя, есть ли у вас реальная проблема с диспетчером памяти или конкретной программой. .

Да, я почти уверен, что это не вина Chrome. Но обычно у меня более 20 вкладок, иногда 100. Так что медлительность меня сильно отталкивает. Я отредактировал вопрос, хотелось бы знать, что вы думаете об этом.
Если бы память была проблемой, у вас были бы сбои и нестабильность, а не медлительность. Может быть интересно взглянуть на ваши цифры для vm_stat/iostat, так как они покажут вам работоспособность системы. У вас может быть слишком много вкладок для вашего процессора, если вы не можете закрыть все другие приложения, чтобы выделить все ресурсы для десятков вкладок, которые предположительно содержат флэш-контент на многих вкладках.

Я не могу говорить за Apple, и их философия дизайна. Но я люблю их оборудование и ОС.

Один из способов улучшить время отклика Chrome и использование памяти — настроить его в настройках.

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

Вы можете настроить его таким образом, что он не будет автоматически воспроизводить все Flash, а спросит вас, хотите ли вы, чтобы он воспроизводился.

Перейти в Chrome

настройки > дополнительные

Конфиденциальность > Настройки контента

Прокрутите вниз и найдите

Плагины

Установите его на

Нажмите, чтобы играть

СДЕЛАННЫЙ :)

Если вы хотите контролировать еще больше, нажмите на кнопку

Отключить отдельные плагины

и управлять отдельными плагинами по вашему желанию.

Я сделал все это, плюс свел к минимуму все плагины, занимающие память. Я люблю Mac, лучшее сочетание аппаратного и программного обеспечения, которое только можно найти. Но я действительно не испытывал такой медлительности при просмотре нескольких вкладок в других операционных системах, таких как Linux или даже Windows, когда я имею в виду машины, отличные от Apple. Поэтому я немного ошеломлен, увидев, что моя 8 ГБ ОЗУ все еще недостаточно мощна для Mac! Это связано с памятью не Mac?

это зависит от того, сколько и какие расширения Chrome вы установили и включили. Chrome, работающий с 0 расширениями, работает совершенно по-разному с использованием ОЗУ по сравнению с Chrome, работающим с 20 расширениями.