PDA

Показать полную графическую версию : Использование ОЗУ системой


Страниц : 1 [2]

skrnn
31-10-2015, 21:26
«Закрытые программы» в памяти не находятся. После завершения работы приложения страницы, ранее принадлежавшие рабочему набору, переводятся в состояние Standby. Это кэшированная память. Она может быть как передана вновь по запросу в рабочий набор без дисковых операций, так и очищена и переведена в состояние Free при необходимости. »
Если закрытые программы не находятся в памяти, то как они вновь попадут в память без дисковых операций при их повторном открытии, но что же тогда находится в кеше памяти и почему он растет?

Давайте посмотрим в Мониторе ресурсов полоску, состоящую из 5-ти цветов, каждый цвет указывает объем занимаемой памяти и в каком состоянии она находится.
Если в Мониторе ресурсов навести курсор на синюю часть этой полоски, то увидим подсказку:
Зарезервировано: Память, в которой содержатся кешированные данные, и которая недоступна для использования.
Это те процессы, которые сейчас не используются и находятся в режиме ожидания (в кеше памяти). В этом случае при запуске ранее закрытой программы мы обойдемся без дисковых операций.

Хочу показать некоторые скриншоты при работе программы MBAM и после ее завершения. На первом скрине видно, как идет запись в память с папки C:\Program Files и одновременно идет их обработка, на другом видно окончание работы программы MBAM. Потом видим, как во время сканирования на вирус, идет запись в файл подкачки.
Думаю, Вы знаете, что процесс может иметь одновременно и активные страницы и страницы находящиеся в ожидании. На одном из скринов Вы видите запись в память недостающих страниц проводника из файла подкачки. На самом деле таких процессов было больше, чем отражено на скрине, к сожалению, я не успел их все заснять.

Iska
31-10-2015, 21:37
Если закрытые программы не находятся в памяти, то как они вновь попадут в память без дисковых операций при их повторном открытии, но что же тогда находится в кеше памяти и почему он растет? »
skrnn, Вы меня будто не слышите. В кэшированной памяти находятся уже не «программы», а просто страницы. Если Вы попробуете запустить программу вновь, Вы получите новый экземпляр процесса, со своим идентификатором. Ещё раз — не «программы».

Кэшированная память — это память, которая вот сейчас, в данный момент недоступна для использования. При нехватке памяти она будет переведена системой во Free.

С остальными рассуждениями всё верно.

По поводу:
Если у Вас иная информация по поводу «эти страницы будут перемещаться в файл подкачки», »
что скажете?

severagent007
01-11-2015, 11:57
как они вновь попадут в память без дисковых операций при их повторном открытии »superfetch и prefetch кеширует как раз для повторного запуска пргграммы. Именно ехе-файла.

Iska
01-11-2015, 12:44
severagent007, здесь мы не касаемся работы механизмов prefetch, superfetch, ReadyBoost, ReadyDrive и т.п.

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

skrnn
02-11-2015, 04:51
В кэшированной памяти находятся уже не «программы», а просто страницы. »
То, что находится в памяти в любой ее области, все разбито на страницы и неважно библиотека, драйвер или это исполняемый файл. Если я запускаю вновь, закрытую ранее программу, для меня важно, что бы она быстро открылась и что бы страницы этой программы находились в кеше или по крайней мере в файле подкачки.

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

С остальными рассуждениями всё верно. »
То есть Вы уже согласились, что страницы закрытой программы могут какое-то время оставаться в кеше.

При нехватке памяти она будет переведена системой во Free. »
Не совсем так, когда нет файла подкачки появится сообщение о нехватке памяти. Если память была заполнена как буфер при копировании файлов или после проверки системы антивирусом, то да этот мусор будет очищен и без файла подкачки.

Сегодня я специально установил систему на менее скоростной внешний диск, что бы была более явно видна разница между первым запуском и последующими. Тот же WORD первый раз запускается секунды 2 - 2.5, закрываю программу и запускаю ее вновь, она открывается моментально. Снова закрываю программу, очищаю кеш, страницы WORDа уже в файле подкачки, еще раз запускаю, менее чем за 0.5 сек программа открылась вновь, что тоже не плохо по сравнению с первоначальным включением.

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

severagent007
02-11-2015, 11:29
для меня важно, что бы она быстро открылась и что бы страницы этой программы находились в кеше »для таких экспериментов вообще то надо префетч и суперфетч отключать. А так вы получается играетесь с префетчем.

Iska
02-11-2015, 19:34
То есть Вы уже согласились, что страницы закрытой программы могут какое-то время оставаться в кеше. »
Что значит — «уже согласились»? Я обратного и не утверждал. Мои претензии касались процитированного

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

Вот скрин, на котором видно »
Не жалейте пространства на показ заголовка окна. Не могу ассоциировать приведённый скриншот с приложением.




© OSzone.net 2001-2012