Яка різниця між реальною, віртуальною, загальною та приватною пам'яттю?


63

Різні стовпці в "Моніторі діяльності" трохи заплутані


Можливо, варто відзначити, що є 5-й тип пам'яті, якщо ви натискаєте "Перевірити" в процесі, порівняно зі стовпцями на моніторі діяльності. Зокрема, існує два типи "віртуальної" пам'яті: "розмір віртуальної пам'яті" та "віртуальна приватна пам'ять". Останнє - це те, що показано у стовпці "Віртуальна пам'ять" у "Моніторі діяльності".
drfrogsplat

Відповіді:


46

З моєї відповіді на помилку сервера :

Жаргон пам'яті Mac OS X:

Провідний : це стосується коду ядра тощо. Пам'ять, яка ніколи не повинна бути переміщена з ОЗУ. Також відомий як пам'ять резидента.

Спільний : пам'ять, яка ділиться між двома або більше процесами. Обидва процеси показали б цей об'єм пам’яті, тому може бути дещо введено в оману, скільки пам’яті фактично використовується.

Справжнє : це "реальне" використання пам'яті для програми, як повідомляється task_info () - приблизна кількість фізичних сторінок, що мають поточний процес. (RSIZE)

Приватне : Це пам'ять, яку процес використовує виключно самостійно, яка використовується в пам'яті резидента. (RPRVT)

Віртуальна : Загальна кількість адресного простору в процесі, який відображається на будь-що - будь то довільно великий простір для змінних чи щось інше - не прирівнюється до фактичного використання VM. (VSIZE)

Активна : Пам'ять, яка в даний час позначена як активна, і використовується ОЗУ.

Неактивний : "Неактивна пам'ять більше не використовується і її кешували на диску. Вона залишатиметься в оперативній пам'яті, поки іншому додатку не знадобиться місця. Залишити цю інформацію в оперативній пам’яті вам на користь, якщо ви (або клієнт вашого комп’ютера) повернетесь назад до цього пізніше ». - Довідка Mac OS X

Безкоштовно : обсяг оперативної пам’яті фактично доступний без будь-яких даних.


Найкраща документація, про яку я знаю (і яку вдалося знайти під час подальших досліджень) - це власна стаття Apple про керування пам’яттю на веб-сайті розробника.

Інші варті джерела: список розсилки Дарвіна- розробок : [ 1 ], [ 2 ] та стара стаття про MacOSXHints . Крім того, Майк Еш опублікував у своєму блозі хороший вступ мирян


5
Прочитавши документ "Керування пам'яттю Apple", " Неактивний " не обов'язково був кешований на диску. Ви можете продемонструвати це, якщо перевірити своє неактивне використання пам’яті (у мене зараз 747,5 МБ) та ваш «Замінено використаний» (мій зараз 0 байт). Неактивні стосуються лише сторінок пам'яті, які нещодавно не були прочитані / написані жодним процесом.
drfrogsplat

1
Можливо, варто уточнити "Віртуальний", оскільки у "Моніторі діяльності" є дві посилання на "Віртуальну" пам'ять. У вікні «Процес перевірки» стовпець « Віртуальна пам’ять » посилається на « Віртуальна приватна пам'ять », а потім у цьому вікні є ще одна проста назва « Розмір віртуальної пам’яті » (яка, на мою думку, є спільним компонентом віртуальної пам’яті). Це 10.6.4 (у випадку, якщо Monitor Monitor змінив термінологію ...)
drfrogsplat

Чи є "приватна пам'ять" частиною "реальної пам'яті"?
Франклін Ю

6

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

Ці пояснення можуть також допомогти ... безпосередньо з монітора активності -> довідки -> перегляду використання системної пам'яті:

Ось пояснення деяких відомостей, що відображаються внизу панелі пам'яті:

  • Провідний: дротова пам'ять містить інформацію, яка завжди повинна залишатися в оперативній пам'яті
  • Активний: активна пам'ять, що містить інформацію, яка активно використовується.
  • Неактивний: Неактивна пам'ять містить інформацію, яка активно не використовується. Залишати цю інформацію в оперативній пам’яті вам на користь, якщо ви (або клієнт вашого комп’ютера) повернетесь до неї пізніше.
  • Використовується: Використовувана пам'ять використовується процесом або системою. Використовувана пам'ять - це сума дротової, активної та неактивної пам'яті. Якщо системі потрібна пам'ять, вона використовує вільну пам'ять, перш ніж використовується пам'ять.
  • Безкоштовно: Вільна пам'ять не використовується і одразу доступна.
  • Розмір VM: Віртуальна пам'ять або VM - це простір на жорсткому диску, який можна використовувати як пам'ять. Розмір VM - це обсяг дискового простору, який використовується як пам'ять. Mac OS X може використовувати більше пам'яті, ніж об'єм фізичної оперативної пам’яті. Жорсткий диск набагато повільніше, ніж оперативна пам'ять, тому система віртуальної пам'яті автоматично розподіляє інформацію між дисковим простором та оперативною пам’яттю для ефективної роботи. Входи / виходи сторінок: Кількість гігабайт інформації Mac OS X перемістилася між оперативною пам’яттю та дисковим простором

6
Це неправильно. Віртуальна пам'ять - це не пам'ять, яка виділяється на диску (що називається свопом). Віртуальна пам’ять - це адресований простір, але його немає у фізичній пам'яті. Це може здатися одним і тим же, але тонка різна. У багатьох випадках програми виділяють пам'ять, не торкаючись її. У цих випадках програми використовують багато віртуальної пам'яті. Для конкретного прикладу, в даний час моя система використовує 512 Мб свопу, але виділено 196 ГБ віртуальної пам’яті (що є досить типовою кількістю людей, які працюють на Snow Leopard на K64).
Луї Гербарг

2
@Louis, якщо віртуальна пам'ять була виділена, але не використовує оперативну пам'ять або жорсткий диск, то де це?
Майкл Андервуд

4
@Michael: нікуди. Це теоретично. Тільки тому, що йому було призначено та призначено адресу, не обов'язково означає, що вона фактично використовується. Біти низького рівня в ОС знають, коли потрібно вказати ці адреси на фізичні місця в оперативній пам’яті або змінити сховище, але немає необхідності пов’язувати цей простір, якщо програма насправді не зберігає інформацію за цими адресами. Мало того, але ви помітите, що стовпець для кожного процесу, Virtual Mem, не наближається до додавання до розміру VM. Процеси насправді не використовують всю цю пам'ять.
Robert S Ciaccio

2
Є багато VM, який насправді не може бути замінений. Наприклад, якщо ви mmap 4 Гб файл, він потребує 4 Гб VM, при прочитанні він буде відображатися безпосередньо з файлу, і під тиском він буде викинутий (не замінений), оскільки вихідний файл можна просто перечитати. VM та обмін - це абсолютно різні речі, VM просто використовується, щоб зрозуміти, на що поміняти
місцями

3
Під VSIZE я маю на увазі те, що є тим, що не вказано в моніторі активності, ви можете бачити це в списку вгорі, якщо хочете. Що в списку віртуальної пам’яті перераховано «Монітор активності», це загалом називається VPRVT, тобто кількість віртуальної адреси, якою користується додаток, яка не надається спільним доступом до жодної програми.
Луї Гербарг

4

Apple оновила Монітор активності в OSX 10.9 (Mavericks). У них є хороша стаття про те, що все тут означає http://support.apple.com/kb/HT5890 . Підсумовуючи ...

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

  • Фізична пам'ять: кількість встановленої оперативної пам’яті.
  • Використовувана пам'ять: об'єм оперативної пам’яті, який використовується та не одразу доступний для інших програм.
  • Віртуальна пам'ять: об'єм відображення пам'яті, яке запитували програми. Це не фактичне споживання ресурсів ОЗУ, а його розмір визначається автором програми.
  • Використовується заміна: простір на вашому диску, який використовується для обміну невикористаними файлами в оперативну пам'ять і з неї. Це нормально бачити деяку активність, і це не є ознакою того, що ви виснажили ресурси ОЗУ. Побачення тиску пам'яті в червоному стані означатиме, що ресурси ОЗУ вичерпані.
  • Пам'ять додатків: кількість місця, яке використовується додатками.
  • Провідна пам'ять: пам'ять, яку не можна кешувати на диску, тому вона повинна залишатися в оперативній пам'яті. Інші програми не можуть запозичити цю пам'ять.
  • Стислий: об'єм пам'яті в оперативній пам'яті, що стискається, робить більше ресурсів ОЗУ доступними для інших додатків.
  • Кеш файлів: простір в оперативній пам’яті позначено як доступний для додатків, які використовують недавно використані файли.

Графік тиску пам'яті

Поєднання статистики вільної, дротової, активної, неактивної та використаної пам’яті в попередніх версіях Монітора активності було замінено в Mavericks простою для читання графіком «Тиск пам’яті».

Тиск пам'яті позначається кольором:

  • Зелений - доступні ресурси оперативної пам'яті.
  • Бурштин - задаються ресурси пам'яті RAM.
  • Червоний - ресурси пам'яті оперативної пам’яті виснажені, і OS X використовує накопичувач для пам'яті.
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.