Почему удаляет огромное количество файлов (в среднем малый размер) дольше, чем один файл (огромный размер)

Скажем, у меня есть 2 случая удаления файлов:

  1. 150 000 файлов в среднем размером 30 КБ, общий размер – 4 ГБ
    -> закончено в течение часа
  2. Один файл размером 8 ГБ
    -> закончил быстро

Размер файла в случае 2 больше, чем в случае 1
Почему удаление на случай 1 заняло гораздо больше времени, чем случай 2?

  • Где можно загрузить предыдущие версии операционных систем Microsoft?
  • Способ ограничения пропускной способности программ в Windows?
  • Как определить фоновую программу (в Windows 7), которая автоматически крадет активную фокус?
  • Известны ли временные метки временных файлов Windows?
  • Можно ли запускать окна с блокировкой NUM?
  • Регулярно ли вредит ноутбуку или Windows?
  • Ярлык клавиатуры для переключения на фоновый рисунок рабочего стола
  • Как сделать одно окно на Mac OS X липким для каждого рабочего пространства?
  • Компьютерный цикл перезапускается при загрузке Windows
  • Служба центра безопасности Windows не может быть запущена
  • Окно невозможно настроить после восстановления системы
  • Планирование задачи программы GUI и отображение ее графического интерфейса при входе в систему
  • 5 Solutions collect form web for “Почему удаляет огромное количество файлов (в среднем малый размер) дольше, чем один файл (огромный размер)”

    Поскольку кто-то попросил визуальное объяснение (грубо говоря и преувеличение):

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

    Удаление файла

    Удаление каждого файла включает обновления метаданных каталога (то есть место, где хранится информация о файле) и (как правило) обновления для растрового изображения свободного пространства. Каждый из 150 000 файлов – это одна операция над метаданными, которые могут быть все вокруг диска.

    Удаление отдельного файла, независимо от его размера, является заменой на единую запись метаданных.

    Итак, в первом случае вы на самом деле выполняете 150 000 операций, чем во втором.

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

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

    Каждый файл сохраняется в другом разделе на вашем диске hdd. Файлы также могут быть разделены, поэтому больше файлов + больше фрагментов = больше времени. В более крупном файле будет меньше фрагментов, и жесткий диск будет тратить меньше времени на их поиск.

    Чтобы удалить файл, большинство операционных систем просто помечают его запись в качестве неиспользуемой, чтобы впоследствии быть заменены записью каталога в другой файл (в дополнение к маркировке занимаемого места на диске как бесплатного).

    На самом деле это не происходит через все данные в файле и удаляет его, поэтому работают утилиты undelete.

    Давайте будем гением компьютера.