2

Я пытался переместить некоторые файлы в папку (E: to E: так что я уверен, что он перемещается, а не копируется), но это занимает несколько минут, чтобы переместить некоторые файлы размером 60 КБ. У меня сложилось впечатление, что перемещение файлов должно быть очень быстрым, поэтому мне было любопытно, что нужно сделать компьютеру, чтобы переместить некоторые файлы в папку?

(Я использую Windows Vista Home Premium Sp2, но на самом деле я надеялся на более широкий охват этого вопроса)

2 ответа2

3

Даже если вы просто перемещаете файлы в папку, расположенную на том же диске, файловая система все равно должна проделать небольшую работу для перемещения файлов. Основная таблица файлов (MFT) должна быть обновлена, чтобы отразить новое местоположение файлов, и журнал файловой системы также должен быть обновлен, чтобы позволить откатывать изменения в случае, если перемещение прерывается из-за сбоя питания и т.д.

Я не уверен, как точно рассчитать, сколько разных вещей должна выполнить файловая система, но мы можем предположить, что она должна будет внести не менее 60 000 изменений в MFT. Это много изменений влечет за собой много небольших операций чтения и записи, на которых жесткие диски работают не очень быстро.

1

Предупреждение: поздний ответ ниже

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

  2. Для каждого файла компьютер:

    • R: проверяет, есть ли какие-либо открытые дескрипторы от других программ к файлу,
    • R: вычисляет размер файла,
    • R: проверяет, существует ли пункт назначения,
    • R: проверяет, достаточно ли места в пункте назначения,
    • R: проверяет, есть ли файл с тем же именем в месте назначения,
    • R: проверяет права на запись в пункт назначения,
    • R: читает файл из источника,
    • W: записывает файл в место назначения,
    • R: читает информацию о владельце файла, разрешениях и ACL из источника,
    • W: записывает владение файла, права доступа и информацию ACL к месту назначения,
    • R: читает таблицу файлов,
    • W: записывает обновленную таблицу файлов,
    • W: удаляет (перезаписывает со случайными значениями или 0) исходный файл (или его часть),
    • R: снова читает таблицу файлов (для удаления),
    • W: снова записывает обновленную таблицу файлов (для удаления).

Таким образом, цифры составляют 15 операций на файл (10 операций чтения, 5 операций записи; на самом деле количество операций больше), поэтому для файлов размером 60 тыс. Операций было более 900 тыс. Операций, то есть 5 тыс. Операций в секунду.

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

И выше для самых маленьких файлов.

Учитывая размер файлов, большинство операционных систем:

  1. выполняет файловые операции в чанках (больше чтения и записи),
  2. старается не сжечь ваш жесткий диск, не используя его на 100%.

Если после этого вы медлите с вашего компьютера, попробуйте перемещать физические файлы и документы (60 тыс. Из них) ОДИН-О-ОДИН.

Извините за сарказм в последней строке, я пытался понять мою точку зрения.

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