Удаляются ли приложения из оперативной памяти при закрытии?

Удаляются ли приложения из оперативной памяти при закрытии?

Я заметил, что когда открываешь программу, закрываешь ее, а затем снова открываешь, то во второй раз она открывается намного быстрее.

Это потому, что во второй раз он уже в оперативной памяти?

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

решение1

В общем случае, когда приложение закрывается/завершает работу, занимаемое им хранилище мгновенно освобождается, и если вы перезапустите приложение, оно будет загружено с диска заново, в «новое» хранилище.

Самым большим исключением из этого правила являются некоторые «смартфоны», где иногда, когда вы «закрываете» приложение, оно на самом деле не завершается немедленно, а просто «переводится в фоновый режим» на некоторое время, предполагая, что вы можете перезапустить его в ближайшем будущем. Но если вы не используете приложение в течение некоторого времени, оно в конечном итоге завершается ОС, и память освобождается. (Насколько мне известно, эта схема не используется на обычных компьютерах Microsoft или Apple, только на телефонах.)

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

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

решение2

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

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

Операционные системы идут по доступу к данным. Конечно, память, которая хранит данные, к которым никогда не будет доступа, считается свободной.

Связанный контент