Чому веб-сторінки займають стільки оперативної пам’яті?


25

Залишивши купу сторінок відкритими в Chrome, мій комп'ютер стає млявим. Менеджер завдань Windows показує, що деякі сторінки займають багато оперативної пам’яті:

введіть тут опис зображення

  1. Чому вони беруть стільки оперативної пам’яті?
  2. Чи є спосіб дізнатися, скільки займає оперативна пам’ять на кожній сторінці, щоб я досліджував?

Дякую.


9
У Chrome теж є власний менеджер завдань . І введіть, chrome://memory-redirect/якщо ви ще трохи готові.
slhck

1
Дякую за пораду. Виявляється, Chrome не використовує один процес для однієї вкладки / сторінки: процес може вказувати на одну вкладку та кілька веб-сторінок, тому я не можу сказати, який використовує скільки оперативної пам’яті.
OverTheRainbow

Відповіді:


23

Chrome - найважчий споживач оперативної пам’яті на ринку браузерів. Він торгує збільшенням використання пам'яті для збільшення швидкості. Якщо у вас недостатня кількість доступної оперативної пам’яті, вона стає найповільнішим браузером на ринку (порівняно з таким, який буде достатньо малим у використанні ресурсів, щоб залишатися повністю в оперативній пам’яті замість того, щоб перейти на жорсткий диск).

Тут команда розробників Chromium обговорює корисність і поганість цієї моделі пам'яті, що використовується в Chrome .

І тут ви можете налаштувати Chrome для використання альтернативних моделей пам'яті з різними компромісами, включаючи режим єдиного процесу "стиль firefox": http://dev.chromium.org/developers/design-documents/process-models


8
  1. Чому веб-сторінки займають стільки оперативної пам’яті?

Chrome використовує модель для кожного процесу, що означає, що для кожної вкладки (або групи пов'язаних вкладок) використовується окремий процес замість окремого потоку. Це в основному означає, що кожна вкладка - це окрема запущена програма. Таким чином, при будь-якій аварії вони знищуються самі, а не знімають весь браузер (це те саме робиться для плагінів і більшості розширень).

Це має свої очевидні переваги (пісочниця є основним), але, звичайно, має і недоліки, як той факт, що кожна з них має накладні витрати, а це означає, що Chrome використовує більше оперативної пам’яті загалом для того ж набору відкритих сторінок, ніж браузери, які роблять не використовувати модель для кожного процесу (інші браузери почали рухатися до цього методу з моменту виходу Chrome).

Як ви зазначали, правило per-process не обов'язково означає, що кожна вкладка отримує свій власний процес. Це залежить від того, як відкрилася сторінка. Використання відкрити в новій вкладці або відкрити в новому вікні відкриває сторінку / посилання в тому ж процесі, що і батьківський, але відкрите в інкогніто вікно відкриває його в новому процесі, як це роблять нові вкладки та нові команди вікна .

Ще однією причиною того, що сторінки займають багато оперативної пам’яті, є те, що в наші дні більшість веб-сторінок містять багато JavaScript та Flash, що робить їх як процесором, так і оперативною пам’яттю важкими (що також означає, що старі системи не можуть зручно переглядати Інтернет, тому немає довше таке поняття, як "використана, стара, але добра для перегляду система"). Гірше, що плагіни та розширення (і, можливо, навіть сам Chrome) можуть через деякий час просочити пам'ять , збільшивши час використання пам'яті.

  1. Чи є спосіб дізнатися, скільки займає оперативна пам’ять на кожній сторінці, щоб я досліджував?

На жаль, немає (відомого / простого) способу побачити використання пам'яті на сторінці. Найближчий спосіб - натиснути Shift+Escабо клацнути правою кнопкою миші смужку вкладок та вибрати Диспетчер завдань, щоб побачити використання пам’яті за процес.

Можна спробувати одне - відкрити кожну сторінку в новому процесі (використовуючи один із вищезгаданих методів), а потім порівняти.


Дякую, я збирався поставити запитання для цієї відповіді. Я не можу повірити, як проста веб-сторінка може зайняти 300 Мб.
Федеріко Понці

1

Спробуйте гайковий ключ, інструменти, інструменти для розробників, аудити

Дуже багато пропозицій щодо підвищення ефективності роботи вашої веб-сторінки, чому певні веб-сторінки інших людей використовують надмірні ресурси.


Я не говорю про свої веб-сторінки, а про веб-сторінки, які я читаю в Мережі, і в кінцевому підсумку висмоктують стільки оперативної пам’яті, що мені доведеться їх робити закладки, перезавантажувати Chrome і знову відкривати сторінки.
OverTheRainbow
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.