Что быстрее, копируя все сразу или по одному за раз?


17

Я переношу кучу (20+) больших (1 ГБ +) файлов на мою внешнюю флешку через USB 2.0. Неужели быстрее просто перекинуть их сразу (как по одному, но не дожидаясь окончания предыдущей передачи), чтобы происходило несколько передач, или перевести одну, дождаться ее завершения, переместить следующую? , Файлы поступают из разных мест, поэтому я не могу сделать ни одной большой передачи.

Есть ли другие преимущества в том или ином случае, которые стоит рассмотреть?


Сколько стоит «Букет»
Моав

20+, вопрос обновлен.
Фредли

6
Здесь есть несколько очень интересных теоретических ответов, но я бы хотел увидеть некоторые реальные данные. Как мы можем установить надежный тест?
Pops

Ответы:


19

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

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

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

Если вы не хотите ждать окончания каждой передачи, воспользуйтесь приложением очереди копирования, таким как Teracopy .

Конечно, скорость записи на флэш-диск будет узким местом, так что, вероятно, не имеет значения, каким образом вы это делаете. :)


1
Отличный ответ, хотя я предпочитаю FastCopy сам. :-)
афразир

Теракопия великолепна! Мне нравится, как он автоматически заменяет систему копирования файлов Windows. Огромное увеличение скорости, спасибо!
Фредли

Хотя это звучит логично, и я лично так думаю. но практика доказывает обратное, у меня есть USB-флеш-накопитель, который копирует один файл (с SSD) со скоростью 30 МБ / с, но когда я пытаюсь скопировать три файла одновременно в одной среде, скорость падает до 2,5 МБ / с. за каждый поток. Таким образом, скорость снизилась до 7,5 МБ / с с 30 МБ / с.
Сизиф

2

Если целевой диск является твердотельным накопителем, просто имейте в виду, что твердотельные накопители чертовски быстры . (*)

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

Ваше узкое место наверняка будет на целевом диске

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

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

(*) То есть, как утверждает Ньютон, потому что нет движения головы. Но не следует использовать термин « задержка» : задержка - это движение головки + задержка вращения диска + время чтения, а в SSD это просто случайное время чтения, которое не зависит от предыдущей позиции чтения, как это делают дисководы.


2

Используя встроенную утилиту копирования файлов в Windows, они оба ужасно медленные. Вы можете рассмотреть возможность использования альтернативного приложения, такого как TeraCopy .


1

Если вы копировали по IP-протоколу (FTP / SCP / Samba / и т. Д.), То копирование одного файла потребует меньше времени, поскольку между каждым файлом приходится несколько рукопожатий.

В этом случае, поскольку есть большие файлы и их мало, для шины ввода / вывода не будет большого значения то, что вы делаете, и, вероятно, их будет проще скопировать как есть.


0

Лучше всего писать один файл за раз.

Скорее всего, вы обнаружите, что пропускная способность вашего флэш-накопителя будет достаточно насыщенной. (Маловероятно, что исходный диск является узким местом.) Хотя USB 2.0 может передавать до 480 МБ, ваша флешка, вероятно, ограничена ~ 20 МБ. Это означает, что при переносе пары файлов с жесткого диска (дисков) максимальная скорость записи на флэш-накопителе будет максимальной, и каждый файл будет записываться медленнее, поскольку им приходится делиться.

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

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

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

Если исходные файлы взяты из разных источников (вы имеете в виду разные жесткие диски? CD / DVD? Сетевой диск? Или просто папки?), Тогда вы можете использовать специальный инструмент для копирования файлов вместо встроенного в Windows в функции. Некоторые варианты включают инструмент Microsoft TechNet Robocopy , который также имеет интерфейс GUI , RichCopy (также от TecNet), который является усовершенствованным инструментом на основе Robocopy, и Teracopy , который специализируется на максимально эффективной передаче (и имеет бесплатная версия).


0

Хорошо, так как ОП специально сказал, что копирует их через USB 2.0 на одну цель, я бы сказал, по одному за раз, независимо от источника.

S = Последовательный. Несколько файловых потоков = накладные расходы.

Но на практике ...

При копировании из нескольких источников время, потерянное для нескольких потоков, будет более чем компенсировано отсутствием необходимости вручную создавать «очередь» копирования. И это проще. ;)

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


0

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


Прочитайте другие ответы, прежде чем писать новый ответ
yass
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.