Необоснованное использование ОЗУ в Windows 7

16

У меня свежая установка Windows 7, и моя память при обычном запуске увеличивается до 2,5 ГБ. Я посмотрел на диспетчер задач, и там, по крайней мере, 1,5 ГБ не хватает, а также в Resource Monitor. Там нет никаких указаний на то, что использует эту оперативную память. Может кто-нибудь сказать мне, как я могу узнать, что потребляет мою память? Я верю, что это вирус, но ни одна из бесплатных антивирусных программ не выследила его.

Я добавил картинки ниже. Если это нормальное использование Windows 7, как подразумевают некоторые ответы, тогда я не понимаю этого вообще.

PS
Моя установка Windows 8 работала ниже 2,5 ГБ, фактически это было 1. что-то, до недавнего времени я переносил некоторые файлы с другого компьютера, у которого была та же проблема, что и у меня сейчас. Я удалил Windows 8 и установил Windows 7, так как я все равно это сделаю, и теперь я также получаю большое использование памяти в Windows 7.

Скриншот
(Нажмите на изображение, чтобы увеличить)

Скриншот

Deus обман
источник
Добро пожаловать в SuperUser! Чтобы помочь диагностировать ваш компьютер, нам нужно немного больше информации. Не могли бы вы включить скриншот диспетчера задач, чтобы мы могли видеть, что происходит?
digitxp
2
Хорошо быть здесь :) Я добавил фотографии в свой вопрос.
Deus Deceit
11
Re: I believe it's a virus: xkcd.com/1180 (SCNR)
Heinzi

Ответы:

64

Если вы хотите, чтобы ОС не использовала вашу оперативную память, выньте ее из своего компьютера и положите на стол. Но пока оперативная память находится в машине, ее использование бесплатно . Если вы думаете: «Я хочу освободить оперативную память сейчас, чтобы я мог использовать ее позже », вы глупы. Вы можете использовать его сейчас и использовать его позже. Там нет не недостаток использования оперативной памяти. Вовсе нет.

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

Свободная оперативная память требуется только в тех редких случаях, когда требуется оперативная память, и операционная система не может перевести оперативную память из одного использования в другое (например, в контексте прерывания). Для этой цели требуется лишь очень небольшой объем оперативной памяти, как правило, 64 МБ или около того на современных компьютерах. Больше свободной оперативной памяти, чем просто трата.

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

Дэвид Шварц
источник
1
Это ... дерьмо. Я потратил впустую свой день, преследуя единорогов, как кажется. Я хочу поблагодарить всех за их ответы и пометить этот ответ как Правильный, потому что считаю его наиболее информативным.
Deus Deceit
Отличный ответ. Это идет рука об руку с "Сколько оперативной памяти мне нужно?" Вам нужно только столько, сколько вы используете.
Келтари
9
Чего люди не понимают, так это то, что свободная / простоя ОЗУ тратится впустую. Что это там вообще? Люди были настолько привыкли к тому, как XP-ые делали вещи, что возникали массовые жалобы на то, что Vista - боров ОЗУ (некоторые из них были оправданы).
Каран
1
Проблема с этими ответами состоит в том, что, хотя они правильны, они решают проблему отсутствия «свободной» оперативной памяти, объясняя ее как используемую для кэширования. Оперативная память «кэш» отличается от той, которая выделяется для запущенных процессов, и, похоже, вопрос заключается именно в том, какая оперативная память «используется» запущенными процессами. Оперативная память, используемая ОС для кэширования, должна быть полностью прозрачной и не должна отображаться как «используемая» в диспетчере задач (конечно, если отдельные процессы решают использовать больше доступной оперативной памяти для собственного кэширования, это не применяется, и это может иметь место здесь).
Боб
4
@Bob Случай точно такой же с памятью, выделенной для запущенных процессов. Практически вся физическая оперативная память по сути является кешем в современной операционной системе. Память, выделенная процессом, может соответствовать или не соответствовать фактической физической памяти в зависимости от других потребностей ОС.
Дэвид Шварц
8

Windows 7 пытается использовать всю вашу оперативную память. Если ни одна программа не использует его, он будет хранить как можно больше информации с вашего жесткого диска, поэтому, когда программа запрашивает некоторую информацию, она будет доступна в ОЗУ (это намного быстрее, чем на вашем диске).

Эта функция называется Superfetch, и вы можете прочитать информацию о ней по этой ссылке, а также поискать в ней. А если вы хотите узнать, как это влияет (улучшает) производительность, взгляните на сайт Tom's Hardware .

Если программе требуется больше памяти, Windows предоставит необходимую оперативную память вашей программе, так что вам не о чем беспокоиться.

woliveirajr
источник
4

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

Ядро Linux также имеет такую ​​функцию .

dtmland
источник
1
Я использую Linux в качестве основной ОС и для того, чтобы достичь 2,5 ГБ ОЗУ, мне нужно ... на самом деле я думаю, что никогда не достигал 2,5 ГБ ОЗУ с тем, что я делаю.
Deus Deceit
Есть ли способ проверить, так ли это? Есть ли способ отключить эту функцию и посмотреть, что произойдет? Я новичок в Windows.
Deus Deceit
Да, это объясняет, как: addictivetips.com/windows-tips/disable-windows-7-superfetch (обратите внимание, что они рекомендуют не отключать в большинстве случаев использования)
dtmland
3
Обратите внимание, что отключение Superfetch означает, что Windows может использовать память для других целей. «Свободная память» в конце концов означает, что Windows вообще не знает, что с ней делать.
MSalters
SuperFetch, новая «функция кэширования диска» в Windows 7 (и в Vista, и в 8, и в 8.1, и в 10), не берет оперативную память из «доступной» оперативной памяти. ОЗУ, которое он «использует», остается в списке ожидания и, следовательно, «доступно». Он просто используется для кэширования различного содержимого - содержимого файлов, к которым вы недавно обращались, в отличие от страниц, которые недавно были вытеснены из процессов с низким приоритетом памяти.
Джейми Ханрахан
3

2,5 ГБ или ОЗУ - совершенно нормальный объем для использования Windows 7. В настоящее время моя машина простаивает и сидит на 2,51 ГБ используемой оперативной памяти. Я очень сомневаюсь, что у вас есть вирус, это типичное использование памяти.

Что касается того, что использует эту оперативную память, посмотрите в диспетчере задач и убедитесь, что Show processes from all usersфлажок установлен. Без этого вы не увидите никаких системных процессов (или других пользователей) и их использование памяти.

Keltari
источник
1
Я согласен, я только что сделал новую установку Win 7 и использование памяти составляет около 2,1 ГБ.
Моисей
И что будет, если у кого-то будет 2 ГБ оперативной памяти вместо 8, которые есть у моего ноутбука?
Deus Deceit
4
Если бы у вас было меньше оперативной памяти, она бы использовала меньше.
Дэвид Шварц
@DeusDeceit, чтобы добавить к комментарию Дэвида, любая современная ОС (Windows, Linux, MacOSX) будет смотреть на доступную ей память и выбирать наиболее эффективный способ ее использования. Ни одна современная система не собирается пытаться заполнить 2 ГБ оперативной памяти данными 3 ГБ, пройти две трети пути и сказать «упс».
Роб Мойр
3

Это очень похоже на обычную озабоченность Linux тем, что «Linux съел мою оперативную память». Я интенсивно использую свою машину с Windows 7, и когда у меня было 6 ГБ физической памяти, она съедает что-то вроде 5 ГБ. Когда я обновил до 8 ГБ, он ест 6-7 ГБ. Но я ничего не изменил с тем, что я делаю с моей машиной.

Он использует оперативную память для кеширования файлов, чтобы впоследствии к ней можно было быстрее получить доступ. Очень похоже на Linux. Это действительно бесплатно, и Windows 7 выйдет, когда вашему приложению потребуется выделить больше оперативной памяти.

JavaDev
источник