2

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

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

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

2 ответа2

4

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

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

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

1

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

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

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

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

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