Почему мой файл копируется медленно?

27624
Mahes

Я пытаюсь скопировать папку (около 1 ГБ) в том же каталоге, и скорость копирования довольно медленная (около 600 Кбит / с).

Я могу загружать большие файлы из Интернета быстрее, чем это (2/3 Мбит / с).

Какие-нибудь мысли?

Почему мой файл копируется медленно?

Примечание. Я использую Windows 7 Professional.

10
Пожалуйста, не размещайте один и тот же вопрос на нескольких сайтах. Daniel Beck 13 лет назад 2
http://meta.stackexchange.com/questions/64068/is-it-possible-to-post-questions-across-a-couple-of-the-sites-because-its-debata Will 13 лет назад 0
@Mahes: вы дублируете файлы в одну папку? или папка с другим именем под одним и тем же родителем? имена файлов внутри папки довольно похожи? akira 13 лет назад 0
@akira: я пробовал копировать в одну и ту же папку и на другой диск, но скорость почти одинакова (~ 600 КБ / с) Mahes 13 лет назад 0
@Mahes: ответили только на 1/3 моих вопросов :) akira 13 лет назад 0
@akira: да пробовал разные именованные папки под одним и тем же родителем. НЕТ, имена файлов не похожи. Mahes 13 лет назад 0

4 ответа на вопрос

16
Otavio Decio

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

Это ни в коем случае не нормально, если у него действительно много маленьких файлов. Я только что скопировал 600 МБ (3000 файлов) под XP (один диск, достаточно оперативной памяти) менее чем за 1 минуту; это делает 10 МБ / с, т.е. в 15 раз быстрее. maaartinus 13 лет назад 2
Файлы размером 600 МБ x 3000 сильно отличаются от файлов размером 1,1 ГБ x 22 231; также мы не знаем, сколько дискового пространства он оставил или насколько фрагментирован его диск. У меня были диски, выполняющие это плохо раньше. Otavio Decio 13 лет назад 4
Конечно, это другое. Но его файлы примерно (600/3000) / (1100/22231) = в 4 раза меньше, поэтому скорость на МБ не должна быть в 15 раз меньше. Но да, фрагментация может быть причиной и фактически * ответом * на этот вопрос. И НЕТ, это не совсем нормально, он должен подумать о дефрагментации. maaartinus 13 лет назад 1
@maaartinus: Не забудьте таблицу основных файлов, которую необходимо обновить для * каждого отдельного файла *. Для 3000 это не будет * это * заметно, но для 22 000 это будет очень хорошо. Кроме того, у вас может быть просто более быстрый жесткий диск, чем у OP, поэтому прямое сравнение не будет очень надежным без дополнительной информации. Sasha Chedygov 13 лет назад 3
12
Tom Wijsman

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

5
akira

если ОС должна вызывать CreateFile (), многое может стать немного кровавым, а иногда и неприятным. в любом случае, попробуйте отключить создание имени файла 8.3, так как «сделать длинные имена короткими» отчасти плохо для производительности. если у вас много похожих именованных файлов, которые очень похожи при усечении до 8.3, то вы очень часто будете запускать алгоритм 8.3:

  1. возьмите длинную версию и обрежьте ее до 8,3 символов
  2. есть ли другой файл с таким именем уже?
    1. Нету? прохладно. вставить его как атрибут в MFT
    2. да? штопать, сократить его до 7 символов и добавить число. проверьте еще раз 2.

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

подробнее читайте на http://msdn.microsoft.com/en-us/library/aa365247(v=vs.85).aspx#short_vs._long_names

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

4
Zadett Rosslyn
  1. Откройте «Мой компьютер» или «Компьютер» из меню («Пуск») или кнопки.
  2. Щелкните правой кнопкой мыши внешний жесткий диск из списка и выберите «Свойства»
  3. Нажмите на вкладку «Оборудование».
  4. Выделите диск, с которым у вас возникли проблемы, в списке дисков и нажмите «Свойства».
  5. Нажмите на вкладку «Политики».
  6. Вы увидите две радиокнопки - «Оптимизировать для быстрого удаления» и «Оптимизировать для производительности».
  7. Если не выбрано, выберите .. «Оптимизация для повышения производительности» и нажмите «ОК» (external.hard drive drive). Если вы используете Vista или Windows 7, также отметьте «включить кэширование записи на диск» (Внутренние жесткие диски).
  8. Нажмите «ОК» и выйдите .. убедитесь, что это сделано на обоих жестких дисках
как мне это сделать на Windows 10? Janus Troelsen 7 лет назад 0