Почему Windows не удаляет файл hiberfil после восстановления его содержимого в ОЗУ?

289
Mohamed Benchohra

Так что же мешает инженерам Windows разрешить системе просто удалять и восстанавливать выделенное пространство, занятое файлом hiberfil?

-2
Потому что вы не хотите ждать, когда перераспределение пространства занимает время или пространство используется другими приложениями / данными? LotPings 6 лет назад 0
Я думаю, что мы согласны с тем, что системный раздел не должен иметь меньше 10 или 15 ГБ свободного места, что достаточно для спящего режима. Я думаю, что проблема (как упомянуто @grawity) в непрерывности выделения, чем больше процент использования диска, тем меньше система сможет найти большое непрерывное свободное пространство. Mohamed Benchohra 6 лет назад 1
Кто сказал, что 15 ГБ свободного места достаточно для гибернации? Я бы не ожидал, что этого будет достаточно для системы объемом 16 ГБ (гораздо меньше моей многолетней системы на 24 ГБ или 32-64 ГБ, которые, вероятно, будут в моей следующей системе). TOOGAM 6 лет назад 0

2 ответа на вопрос

6
TOOGAM

О, я думаю, вы можете сделать это вручную. Но это может не иметь смысла. Возможно, именно поэтому Windows не делает этого по умолчанию.

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

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

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

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

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

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

Итак, подведем итог: ответ «что мешает Windows» сделать это может быть встречным вопросом «почему Windows хочет это сделать?»

Благодарю. Я думаю, что по крайней мере это должно быть необязательным, если пользователь хочет, чтобы hiberfil был удален под предупреждающим сообщением «Я знаю, что я делаю», просто странно жертвовать этими 6 или 7 ГБ постоянно без какой-либо пользы. Mohamed Benchohra 6 лет назад 0
@MohamedBenchohra: я сказал, что вы можете сделать это вручную. Если вы хотите, чтобы Windows всегда вела себя так, как вы хотите, например, предоставляя вам нужные параметры (которые затем будут выполнять желаемое поведение), ожидайте разочарования. Такой дизайн чаще встречается в операционных системах с открытым исходным кодом. В отличие от этого, Windows спроектирована так, чтобы служить интересам Microsoft в то время, что наиболее заметно подтверждается тем, как Windows 8 выбрасывала множество функций в Windows 7, чтобы попытаться заставить людей объединиться в единую среду, включающую поддержку Windows Mobile (телефоны). TOOGAM 6 лет назад 0
@MohamedBenchohra Нынешнее поведение кажется мне логичным, и, очевидно, оно относится и к дизайнерам Windows. По разным причинам я считаю, что такой вариант был бы плохой идеей. Microsoft не принимает такие решения легко. Они могут показаться странными тем, кто не понимает последствий, которые зачастую являются более сложными, чем могут показаться. LMiller7 6 лет назад 0
2
grawity

На это, конечно, могут ответить только инженеры Windows. Но:

  1. Если удалить файл спящего режима после того, как резюме, вы должны выделить пространство снова сразу же каждый раз, когда перед зимовкой.

  2. Если на диске недостаточно места, ОС не может перейти в спящий режим. Что еще более важно, файл гибернации должен быть одним непрерывным фрагментом дискового пространства - например, если у вас есть 30 ГБ свободного места, но это пять блоков × 6 ГБ, тогда невозможно создать 8 ГБ гиберфайл.

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

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