Общее потребление памяти системой

Правильно ли предположить, что общее потребление памяти (виртуальная + физическая) системы представляет собой сумму столбцов «Использование памяти» и «Размер виртуальной машины», отображаемых диспетчером задач в Windows?


person Umair Ahmed    schedule 10.06.2009    source источник


Ответы (3)


Прочтите эти сообщения Марка Руссиновича:

http://blogs.technet.com/markrussinovich/archive/2008/07/21/3092070.aspx

http://blogs.technet.com/markrussinovich/archive/2008/11/17/3155406.aspx

person zvolkov    schedule 10.06.2009
comment
Да, Марк дает отличное представление о Windows. - person Simon H.; 10.06.2009

В современной Windows действительно нет единой правды о «общем потреблении памяти». Конечно, это зависит от определения, но реальный вопрос в том, что вы хотите делать с ответом.

Некоторые процессы, такие как SQL-Server, имеют тенденцию использовать каждый байт памяти, к которому они могут получить доступ, если вы им позволите. Сборщик мусора .NET CLR отслеживает использование памяти и действует соответствующим образом, пытаясь освободить больше памяти, когда она становится дефицитной.

Так, например, у вас может быть система с 8 ГБ физической памяти, 90% которой «используется». Трудно сказать, сколько на самом деле необходимой памяти. Та же система может работать на машине с 4 ГБ без заметной потери производительности или каких-либо других проблем.

Если вы хотите изучить некоторые сложности управления памятью в Windows, загрузите "VMMap v2.0 " с бывшего сайта sysinternals. Он очень подробно показывает использование памяти для каждого процесса и может помочь вам в ваших поисках.

Цитата из справки VMMaps: VMMap подразделяет память на один из нескольких типов:

Изображение. Память представляет собой исполняемый файл, например EXE или DLL. В столбце Details отображается путь к файлу.

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

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

Сопоставленный файл. Память представляет собой файл на диске, а в столбце «Подробности» отображается путь к файлу. Сопоставленные файлы обычно содержат данные приложения.

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

Управляемая куча. Управляемая куча представляет собой память, выделенную и используемую сборщиком мусора .NET.

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

Система Системная память - это физическая память режима ядра, связанная с процессом. Подавляющее большинство системной памяти состоит из таблиц страниц процессов.

Свободно. Свободные области памяти - это неиспользованные пространства в адресном пространстве процесса.

Теперь вам просто нужно определить, какие типы памяти вы считаете «использованной», сложите их для всех процессов, удалите несколько дубликатов и посмотрите количество ... Есть причина, по которой в диспетчере задач или других инструментах нет одно число с надписью «Общее потребление памяти» :-)

person TToni    schedule 10.06.2009

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

person Motti    schedule 10.06.2009
comment
Но все же это потребляемая память. Несмотря на то, что это как бы напрасно. Со мной все в порядке, даже если его собирают мусор. пока он использовался, это приемлемо. Меня больше интересует, есть ли что-нибудь еще, кроме этих двух столбцов? (возможно, использование внутренней памяти ядра не отображается в диспетчере задач) - person Umair Ahmed; 10.06.2009