Есть ли способ быстрее передавать тысячи маленьких файлов в Windows 7?

30

Я заметил, что если я передаю несколько больших файлов между двумя жесткими дисками, это довольно быстро, со скоростью не менее 30 МБ в секунду, но если я передаю тысячи файлов менее 5 КБ, это чертовски медленно ... около 1 до 2 МБ в секунду.

Есть ли способ ускорить процесс копирования / вставки с тысячами маленьких файлов в Windows 7?

netrox
источник

Ответы:

19

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

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

Надеюсь, это поможет некоторым.

Крис
источник
1
@netrox: настоятельно рекомендуется Teracopy. +1
studiohack
2
TeraCopy потерпел крах для меня, поэтому я бы не рекомендовал его, так как существует вероятность потери данных.
Саймон Морган
3
У меня была противоположная проблема - копирование 1м крошечных файлов приводило к сбою проводника, но TeraCopy работал хорошо!
RobinL
9

ZIP файлы, а затем передать больший файл ZIP? Я не знаю, сколько времени это займет, чтобы ZIP, хотя (и если общее время быстрее).

Кевин Яп
источник
8
Вы все еще должны прочитать все файлы на стороне источника и записать их все на стороне назначения. Это не будет быстрее. Вы просто потеряете время, чтобы сжать их.
Джои
2
На самом деле, это работает для меня в моей ситуации, так как я действительно хотел сделать резервную копию файлов ... Меня не волнует разархивирование. Сжатие тысяч файлов наверняка сработало ... заархивированный файл был намного быстрее обычного копирования. Но да, я попытался расстегнуть молнию, и это заняло некоторое время. Спасибо за предложение.
Нетрокс
1
Нет проблем; рад, что помог. :)
Кевин Яп
2
Это работает очень хорошо. Мне удалось получить время передачи 200 МБ файлов с 30 секунд, используя обычную копию, до 2 секунд (без сжатия, другой диск). Причина, по которой это работает, заключается в том, что существует много накладных расходов, связанных с созданием и закрытием нового файла. В архиве он имеет один дескриптор файла (архив), к которому вы добавляете данные. Если вы переходите на другой жесткий диск, создайте архив в месте назначения, не создавайте его, а затем перемещайте.
Despertar
Другой случай использования, где это может помочь значительно ускорить процесс, - при переносе на / с портативных флэш-накопителей или других медленных носителей и интерфейсов. Архивирование / разархивирование тысяч маленьких файлов на SSD с подключением SATA III намного быстрее, чем передача тысяч файлов на / с портативной флешки по USB. Очистка также значительно упрощена, поскольку удаление одного zip-файла на USB-накопителе занимает менее секунды, а не несколько минут, чтобы удалить папку с тысячами мелких файлов.
positlux
6

Решение состоит в том, чтобы архивировать с WinRAR, но, когда его спросят, как архивировать, выберите store. Это означает, что сжатия не будет. Таким образом, примерно за одну минуту вы получите один большой файл для копирования, который будет копироваться очень быстро.

Я попытался скопировать 19890 маленьких файлов (по 5Кб каждый), и Windows сказала мне, что это займет 3 часа, TeraCopy сказал 3,2 часа, но по моему методу это заняло всего 1,5 минуты.

Ион Апостол
источник
0

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

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

nhinkle
источник
1
Вы потеряете большую часть времени из-за частого переключения между содержимым файла и записями MFT. Где отдельные файлы находятся на диске, здесь почти не имеет значения.
Джои
0

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

И это также зависит от жестких дисков. Это внешний жесткий диск USB или 2, которые находятся в той же системе? Если это старый внешний жесткий диск, возможно, он использует USB1.0 или вам лучше иметь один с источником питания.

lavamunky
источник
0

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

Андрей
источник
-1

Если это система на основе Unix, вы можете использовать tar поверх ssh.
Следующая команда сжимает все файлы и папки.

tar -cf - / home | ssh root@192.168.1.1 tar -xvf - -C /

-Передача и распаковка на втором компьютере.
Это намного быстрее, чем копирование только на одну SCP

Сначала прочитайте справочную страницу и БУДЬТЕ ОСТОРОЖНЫ

user466567
источник
1
Вопрос содержит тег "windows", поэтому ваш ответ не применяется.
Насреддин
2
верно. в следующий раз читайте тэги, а?
td512
Не упоминать, прочитайте возраст вопроса
qasdfdsaq