Если я копирую файл размером 213 МБ, он копирует МГНОВЕННО - ну, в течение миллисекунд Если я скопирую файл размером 936 МБ, это займет около 1 минуты.
Оба файла находятся на корне моего диска E: \.
Почему такая разница? Даже если 213 МБ заняло 999 миллисекунд, последняя должна скопировать всего за несколько секунд, но это не так.
Машина имеет 4 Гб оперативной памяти, дуэт ядра и т. Д. - оба на одном диске.
Ответы:
Я заметил, что в Windows 7 наблюдается высокая степень кэширования. Если вы скопируете файл, который полностью поместится в доступную оперативную память, он очень быстро вернет вам управление, поэтому вы сможете выполнять работу, пока она завершает работу. скопировать в фоновом режиме.
Тем не менее, кэширование на самом деле не объясняет разницу во времени копирования файла, если только файл не находится в памяти, когда вы пытаетесь скопировать его, а другой нет. Одна минута для копии диска размером 936 МБ с диска на диск составляет около 15 мегабайт в секунду, что является приемлемой скоростью передачи.
Другими словами, я ожидаю, что копирование файла размером 936 МБ займет около минуты.
источник
Существует ряд команд, которые выполняются каждый раз, когда вы выполняете процедуру копирования файла. Если размер файла составляет 213 МБ, вы должны выполнить эти команды (скажем, 3 шага) и одну команду чтения / записи для копирования файла.
Если ваш файл имеет размер 936 МБ, вы все равно должны выполнить 3 вышеупомянутых шага и 7 дополнительных команд чтения / записи, чтобы фактически скопировать файл.
Таким образом, 100 небольших файлов общим объемом 900 МБ содержат 100 обязательных шагов и 100 шагов «копирования», и это займет больше времени, чем копирование одного файла объемом 900 МБ
Таким образом, разница между количеством шагов, необходимых для копирования.
источник
Являются ли ваши исходные и целевые диски одинаковыми в обоих тестах? Копирование файлов на один и тот же диск занимает больше времени из-за того, что движется головка диска назад и вперед. Соответствующие головки могут читать / записывать последовательно (в ожидании количества фрагментов) при копировании с диска на диск.
источник
По моему опыту, Windows сообщит о том, что файл скопирован, как только он будет считан в память. Если у него есть буферное пространство для файла 231 МБ, но нет 900 МБ, вам придется подождать, пока он не записает достаточно файла, чтобы прочитать его конец в память. Это может быть большое количество циклов чтения-записи в разных областях диска. С большим файлом пространство может быть дальше по всему диску, что приводит к более медленным циклам чтения-записи.
Windows также изначально имеет высокую оценку копий. Я часто получаю оценки минут, и копия завершается за несколько секунд или десятков секунд.
Копирование файла в область диска рядом с источником будет быстрее, чем копирование в другое место на диске. Задержка движения головы раньше была задержкой вращения. Оба увеличиваются с расстоянием. В последнее время я не смотрел на значения задержки, но ожидаю, что движение головы все еще медленнее, чем задержка вращения.
источник