Требуется ли для дефрагментации жесткого диска хоть какое-то свободное место? Если да, то сколько?

Требуется ли для дефрагментации жесткого диска хоть какое-то свободное место? Если да, то сколько?

Вопрос, навеянный этой гифкой из Википедии:

введите описание изображения здесь

(Источник:https://en.wikipedia.org/wiki/Дефрагментация#/media/Файл:ФрагментацияДефрагментация.gif)

На гифке блоки (сектора?) перемещаются на свободное место и перестраиваются (дефрагментация).

Требуется ли свободное место?

решение1

Из той самой статьи, откуда вы взяли гифку:

Для дефрагментации диска программное обеспечение для дефрагментации (также известное как «дефрагментатор») может перемещать файлы только в пределах свободного пространства. Это интенсивная операция, и ее нельзя выполнить в файловой системе с небольшим или нулевым свободным пространством.wikipedia-дефрагментация-смягчение

Для дефрагментации Windows XP требуется 15% свободного места на диске.

решение2

Есть два варианта дефрагментации. Вы можете сделать это простым способом, а можете сделать это хорошим способом:

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

    • Плюс этого в том, что это будет быстрее и не потребует дополнительного места на диске.
  2. Переместите данные в другое место на диске, а затем верните их обратно, когда будет создан достаточно большой непрерывный блок.

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

Вариант 1 потенциально не требует дополнительного места на диске, но также потенциально опасен.

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

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

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

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