-1

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

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

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

5 ответов5

2

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

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

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

2

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

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

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

1

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

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

0

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

0

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

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

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