6

Мой Mac, кажется, использует смешное количество памяти, когда почти ничего не работает. Сразу после перезагрузки компьютера и запуска только терминала и монитора активности.

Как можно использовать около 5 ГБ ОЗУ, если запущены только два процесса и используется память в соответствии с «Activity Monitor», а htop ближе к 1 ГБ? Любая помощь или понимание будет принята с благодарностью.

htop отображает это:

И «Монитор активности» отображает это:

2 ответа2

17

Это довольно легко объяснить. Давайте посмотрим на скриншот «Activity Monitor», взятый из моей системы Mac OS X 10.9.5 только сейчас:

Используя это в качестве справки, давайте сделаем некоторую математику, основываясь на элементах в нижней правой части этого скриншота:

  • Память приложения: 1,59 ГБ
  • Кэш файла: 1,32 ГБ
  • Проводная память: 1,30 ГБ

Сложите эти цифры и получите: 4,21 ГБ, что точно соответствует значению используемой памяти, которое составляет 4,21 ГБ.

Так в чем же разница между памятью приложения, файловым кешем и проводной памятью? На все это очень четко ответили в собственных статьях поддержки Apple под названием «Использование Activity Monitor для чтения системной памяти и определения объема используемой оперативной памяти», которая предназначена для Mac OS X 10.8.5 и более ранних версий, или в этой статье «Как использовать Activity Монитор » для Mac OS X 10.9 и выше. И вот соответствующие определения из более поздней статьи, поскольку - на основе ваших снимков экрана - что вы используете Mac OS X 10.9 или выше:

  • Память приложений: общий объем памяти, используемый в настоящее время приложениями и их процессами.
  • File Cache: память, которая недавно использовалась приложениями и доступна для использования другими приложениями. Например, если вы используете Mail, а затем выходите из Mail, ОЗУ, которое использовала Mail, становится частью файлового кэша, который затем становится доступным для других приложений. Если вы снова откроете Mail до того, как его файловый кэш-память будет использован (перезаписан) другим приложением, Mail откроется быстрее, потому что его файловый кэш преобразуется обратно в память приложения, а не загружает все содержимое с загрузочного диска.
  • Проводная память: память, которую нельзя сжать или выгрузить на загрузочный диск, поэтому она должна оставаться в оперативной памяти. Память, используемая процессом, не может быть занята другими процессами. Количество проводной памяти, используемой приложением, определяется программистом приложения.

Теперь, глядя на эти определения, кажется, что самый большой пользователь «неактивной» оперативной памяти - это область оперативной памяти файлового кэша. Так как это кеш, он может быть перезаписан / перераспределен сразу же, если это необходимо системе. Но поскольку это действительно кеш, если вы перезапустите приложение, которое ранее использовало эту кешированную память, это приложение запустится быстрее.

Поэтому, зная это, вы можете с уверенностью предположить, что 1,32 ГБ памяти, используемой файловым кешем, действительно можно считать «свободной» памятью, поскольку система просто захватит ее и будет использовать, когда сможет. И, конечно же, он имеет дополнительное преимущество, заключающееся в ускорении запуска / использования прошлых приложений, которые сохраняют данные в этом файловом кеше, если они запускаются или используются снова.

Также обратите внимание, что график запуска в нижней центральной части «Монитора активности» называется «Давление памяти». Как Apple описывает это:

График давления памяти помогает проиллюстрировать доступность ресурсов памяти.

Все это говорит о том, что график «Memory Pressure» - это попытка Apple помочь визуализировать относительную сложность управления памятью в современных системах Mac OS X, поскольку, как вы можете видеть, расшифровка использования памяти с помощью простого взгляда на необработанные числа может быть иногда сбивает с толку.

1

Обратите внимание, что "использование" памяти на самом деле довольно сложно оценить. В Stack Overflow есть очень поучительный пост об использовании памяти в Android ; Несмотря на то, что между Mac OS X и модифицированным ядром Linux, используемым в Android, есть явные различия, есть достаточно сходств, которые все еще актуальны.

Принятие во внимание общей памяти, памяти для каждого процесса и виртуальной памяти приводит к сбивающей с толку картине того, что находится в памяти, а что нет. «Монитор активности» и htop просто используют разные оценки. Это не беспокоит, и объем используемой памяти в вашем случае - 5 ГБ - вполне нормальный, учитывая, что у вас установлено 8 ГБ памяти.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .