Что значит физическая память в диспетчере задач?

Сжатие оперативной памяти ОЗУ в Windows 10

Что значит физическая память в диспетчере задач?

Читайте, что означает сжатие памяти в Windows и как просмотреть информацию о сжатой памяти на вашем ПК. А также, что делать если компьютеру не хватает оперативной памяти и как определить сколько памяти занимает определенный процесс. Windows 10 использует сжатие для хранения большего количества данных в оперативной памяти вашей системы. В диспетчере задач Windows 10, на кладке “Производительность” выводится информация об размере и текущем использовании памяти. Среди прочих параметров, указано что часть памяти сжата. Давайте разберемся, что это значит?

Что означает сжатие памяти?

Сжатие памяти – это новая функция Windows 10, которая не доступна в более ранних Windows 8 и 7. В тоже время ОС Linux и MacOS используют эту фичу.

Обычно если на вашем компьютере установлено 8 ГБ ОЗУ, а запущенные приложения и сама система используют 9 Гбайт данных для хранения в памяти, по крайней мере 1 ГБ пришлось сохранить в файле подкачки на жестком диске вашего компьютера. Доступ к данным в файле подкачки замедляет скорость работы отдельных приложений и системы в целом.

Однако с использованием алгоритма сжатия (такого же, как в Zip-файле) размер данных может быть уменьшен и целиком помещен в оперативной памяти. К примеру система может оставить 6 ГБ несжатых данных, а 3 ГБ сжать, что бы они занимали фактически 1,5 ГБ. Таким образом у вас будет занято 7,5 из 8 ГБ ОЗУ.

Есть минусы в таком подходе? И да, и нет. Сжатие данных и обратная процедура требуют определенных ресурсов процессора. Поэтому не все данные хранятся сжатыми, система сжимает только ту информацию, которую считает необходимой. Сама операция сжатия и разжатия происходит гораздо быстрее, чем запись и чтение данных с диска. Поэтому Windows ищет компромисс между двумя этими подходами.

Почему Windows не сжимает все данные?

Как мы уже рассмотрели, скорость сжатия и расжатия данных гораздо выше, чем запись и чтение данных с диска. Работа с такими данными происходит в полностью автоматическом режиме и не требует вмешательства пользователя, так почему система не сжимает все данные?

Читайте также  Где в диспетчере устройств оперативная память?

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

Исходя из этого, Windows старается хранить данные к которым часто происходит обращение в расжатом виде, данные к которым система обращается реже сжимаются или вовсе сохраняются в файл подкачки.

Что делать если компьютеру не хватает оперативной памяти?

Так что же делать, если вы видите, что система использует большой объем сжатых данных или работает с большим файлом подкачки? Ответ очевиден, добавьте больше оперативной памяти в свой ПК, это будет наилучшее решение. Также очевидно, что лучше использовать настолько быструю оперативную память, насколько это позволяет ваша материнская плата.

Менее очевидным решением будет использование SSD диска для файла подкачки или системы в целом. Ранее мы рассматривали как перенести файл подкачки на другой диск в нашем видео:

Так как скорость чтения и записи на SSD диск в разы выше, традиционного жесткого диска, то вся система будет работать быстрее.

Как просмотреть информацию о сжатой памяти на вашем ПК

Чтобы просмотреть информацию о том, сколько памяти сжато в системе, необходимо использовать диспетчер задач. Для его запуска, щелкните правой кнопкой мыши на панели задач и выберите «Диспетчер задач», или нажмите Ctrl + Shift + Esc (для Windows 10, 8) или Ctrl + Alt + Delete (для любой Windows) и выберите «Диспетчер задач».

По умолчанию Диспетчер задач запускается в сокращенном виде, вам нужно получить доступ к полной версии. Для этого нажмите кнопку Подробне в нижнем левом углу окна.

Перейдите на закладку производительность и выберите Память в списке справа. Вы увидите, сколько памяти сжато в разделе «Использовать (сжато)». Например, на скриншоте ниже диспетчер задач показывает, что в настоящее время наша система использует 4,2 ГБ, 21,6 МБ – это сжатая память.

Этот параметр постоянно меняется в зависимости от количества запущенных приложений и используемой ими памяти. Количество сжатой памяти может изменяться и от работы системных задач в фоновом режиме, вы можете наблюдать за этим процессом в режиме реального времени.

Так же из скриншота видно, что наша система использует 8ГБ оперативной памяти DDR3. 1 ГБ зарезервирован аппаратно – эту память использует встроенная графическая система. Форм фактор памяти DIMM, используется 2 планки и ещё 2 гнезда в системе свободно. В параметре кэшировано 1,9 ГБ отображается текущий размер файла подкачки. Если вы наведете мышку на диаграмму в разделе Структура памяти, система выдаст всплывающую подсказку с дополнительной информацией.

Читайте также  На что влияет буферная память жесткого диска?

Как определить сколько памяти занимает определенный процесс

Для получения подробной информации по памяти, которую занимает каждый процесс, перейдите на вкладку Процессы, затем найдите нужный и выделите его, в колонке память будет указано фактически занимаемая память.

Некоторые приложения имеют несколько одновременно работающих процессов, как например Google Chrome. В этом случае необходимо посчитать сумму потребляемой памяти всех запущенных процессов.

Источник: https://hetmanrecovery.com/ru/recovery_news/compress-memory-in-windows-10.htm

Не доверяйте информации о памяти в Диспетчере задач

Что значит физическая память в диспетчере задач?

За много лет использования Windows я привык к Диспетчеру задач. Оттуда я убил сотни приложений за плохое поведение. Там же смотрел, кто из них пожирает ресурсы. Пока я не начал работать с машинами, у которых сотни гигабайт памяти, а у приложений соответствующие запросы. В этой статье обсудим, почему Диспетчер задач плохо отслеживает память и что использовать взамен. Во-первых, о механизме выделения памяти в Windows. tl;dr: Диспетчер задач скрывает информацию о подкачке (paged memory) и виртуальном пространстве процесса. Лучше используйте Process Explorer из комплекта Sysinternals.

Выделение памяти в Windows

При запуске нового процесса ОС присваивает этому процессу непрерывное адресное пространство. В 32-разрядных системах это пространство может составить 4 ГБ, обычно 2 ГБ для ядра, а остальное для процесса. В этой статье проигнорируем использование памяти ядром. В 64-разрядных системах зарезервированная процессом память может вырасти до колоссальных 64 ТБ. Что этот процесс будет делать с несколькими терабайтами памяти, когда у нас на самом деле жалкие 8 ГБ? Сначала нужно понять, что такое зарезервированная и переданная память.

Зарезервированная и переданная память

Не все части этого огромного адресного пространства равны. Некоторые части адресного пространства процесса фактически поддерживаются либо физической оперативной памятью, либо диском (см. ниже). Зарезервированная память считается переданной (Committed), если ОС предлагает вам эту память при попытке её использовать.

Остальная часть адресного пространства, а это подавляющее большинство, остаётся доступным для резервирования. То есть не всегда ОС может предложить вам этот блок памяти для использования: она может сделать копию на диске (файл подкачки), например, а может и не сделать. В C++ резервирование памяти осуществляется вызовом VirtualAlloc.

Так что переданная память является аппаратно ограниченным ресурсом в ОС. Давайте посмотрим.

Файл подкачки ОС

Файл подкачки — замечательная идея. В принципе, ОС понимает, что некоторые части памяти особо не используются вашим приложением. Зачем тратить на него реальную физическую память? Вместо этого процесс в ядре записывает этот неиспользуемый фрагмент на диск. Пока к нему не обратятся снова, только тогда он вернётся в память.

Читайте также  Как посмотреть сколько памяти на макбуке?

Для более подробного объяснения, как работает память в Windows, рекомендую лекцию «Тайны управления памятью» Марка Руссиновича.

Отслеживание памяти

Здесь много за чем нужно следить и анализировать. К кому обратиться? Конечно, к Диспетчеру задач! Память в RAM обычно называют рабочим набором (Working Set), в то время как всю выделенную память обычно именуют Private Bytes. Библиотеки DLL вносят путаницу в определения, поэтому пока их проигнорируем. Иначе говоря:

Private Bytes [выделенная память] = рабочий набор + файл подкачки

По умолчанию Диспетчер задач показывает для любого процесса именно рабочий набор:

И это число, на которое я всё время смотрел. Откуда я знал, что в Диспетчере задач информация о переданной памяти находится в колонке Commit Size. Я так и не смог там найти информацию о виртуальной памяти.

Диспетчер задач позволяет добавить информацию о переданной памяти, если щёлкнуть правой кнопкой мыши по столбцам и выбрать соответствующий пункт

Эффективные метрики памяти

К счастью, есть много других ресурсов для отслеживания ресурсов. На каждой машине под Windows установлен PerfMon (Системный монитор), который выдаёт очень подробную информацию о каждом процессе и системе в целом:

Интересно, что Системный монитор умеет фактически исследовать и сравнивать метрики на двух или более компьютерах в сети. Это очень мощный инструмент, но Диспетчер задач, очевидно, удобнее для пользователей. В качестве промежуточного решения рекомендую Process Explorer:

Бум! Visual Studio, чего это ты до сих пор в 32-битном режиме (обратите внимание на его Virtual Size)? Пиковое использование памяти на моём компьютере на уровне 89% от максимума, ещё терпимо. Это пригодится позже.

Дополнение: многие указали на другие удобные инструменты, в том числе VMMap и RAMMap.

Отладка по информации о памяти

К счастью, это не какие-то ненужные мелочи ОС. Актуальная информация о потреблении памяти многократно помогала мне в отладке разных проблем.

Самое главное, это найти нетронутые части выделенной памяти. Данные о подкачке тоже важны: эта память передана, но используется редко или вообще не используется.

Даже если память будет иногда использоваться, важно понимать, что это дорогой ресурс, так что идти по такому пути ни в коем случае нельзя. Здесь появятся и утечки памяти.

По этим причинам я ранее слышал предложение полностью удалить файл подкачки и приравнять выделенную память рабочему набору. Однако это обоюдоострая идея. Тогда ОС не в состоянии сбросить память в случае неправильной работы приложений, которые иногда впустую резервируют память.

Хабы:

  • Отладка
  • Разработка под Windows
  • Софт
  • 26 сентября 2013 в 13:57
  • 15 октября 2012 в 11:45
  • 21 ноября 2010 в 10:53

Источник: https://habr.com/ru/post/435678/