Моя проблема кажется простой. Мой компьютер использует больше физической памяти, чем фактически учитывается в сумме моих программ.

!(Запуск windows 8.1, последние патчи)

Какие окна сообщают о моем общем использовании как

Что такое общее использование системы

Я использую 7,5 ГБ. Общее использование 12 ГБ. Дельта составляет 4,5 ГБ. Это то, что я считаю очень высоким.

Большинство постов, которые я нашел на этом сайте, касаются утечек памяти драйверов, влияющих на «выгружаемый пул» и «невыгружаемый пул», что приводит к высокой загрузке. Однако мой пул страниц + невыгружаемый пул составляет около 650 МБ, что, как я понимаю, не намного выше «нормального» и не должно вызывать эту дельту 4,5 ГБ. Для дальнейшего изучения этого я даже запустил poolmon.exe и не нашел таких неплотных драйверов при сортировке по использованию.

Скриншот Poolmon

Поэтому мой вопрос прост: что дает? Где ты память?

Обновить:

Добрый пользователь направил меня к программе rammap, которая дает более подробное описание распределения памяти. Запустив его, я обнаружил, что 2 ГБ памяти в разделе «используется» было выделено для «сопоставленных файлов», что, как я полагаю, является кэшированием на диске. Перейдя на вкладку «Физические страницы» и отсортировав по указанным файлам, я узнал, что многие из активных отображенных файлов были файлами, используемыми торрент-приложением, содержащим большие файлы данных. Завершение приложения высвободило 1,2 ГБ кеширования диска в «режим ожидания», что дает скриншот, который вы можете увидеть ниже.

Rammap

«Дельта» уменьшилась до 3,2 ГБ, что приближается к тому, что я считаю нормальным, но все еще находится на верхней стороне, хотя, если вычесть оставшуюся часть «сопоставленного файла» 800 МБ, вы получите 2,4 ГБ, что может быть просто объяснено неправильным счетчиком, указанным в разделе «Пользователи» в диспетчере задач.

С этой информацией теперь я не уверен. Это только я не понимаю учет памяти? Действительно ли раздел «разделяемый» в таблице используется пользовательскими программами и просто не учитывается в пространстве пользователя в диспетчере задач? Если так, то эта проблема была бы смесью того, что я не знал, что кэширование диска может учитываться в разделе «Используется» /«Активно», а вкладка «Пользователь» в диспетчере задач является неточной.

1 ответ1

0

Windows 8, как и почти все современные операционные системы, старается использовать как можно больше памяти. Зачем? Потому что любая неиспользованная память тратится впустую.

Если система имеет 8 ГБ памяти и использует только 7 ГБ, она ничего не получает. Это не может использовать 9 ГБ позже. Он просто навсегда потерял какую-либо выгоду, которую мог бы получить от этих дополнительных 1 ГБ, если бы эта память была свободна.

Например, скажем, в вашей системе много свободной оперативной памяти, и вы запускаете какую-то программу. Когда программа заканчивается, система имеет два варианта. Он может сохранить программу (фактический исполняемый файл на диске) в памяти или освободить память, в которой хранится файл программы.

Если он освобождает память, он должен избавиться от проблемы. Если он когда-нибудь захочет снова использовать эту память, он должен пойти на то, чтобы разгрузить ее. И если эта программа выполняется снова, она должна быть загружена с диска. Тройной гад.

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

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

Это победа вокруг. Память хранит данные, которые система надеется, что какой-то будущий процесс может оказаться полезным, и она также избегает посторонних обращений по списку свободной памяти, чтобы освободить память, просто чтобы снова пометить ее как использованную. Современным операционным системам нужно только оставить очень маленький объем свободной памяти, достаточный для обработки чрезвычайных ситуаций (таких как сбои страниц и запросы памяти из кода прерывания), когда она не может легко перевести память из одного использования в другое.

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