10

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

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

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

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

4 ответа4

16

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

12

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

5

если ОС должна вызывать 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
  1. Откройте "Мой компьютер" или "Компьютер" из меню ("Пуск") или кнопки.
  2. Щелкните правой кнопкой мыши внешний жесткий диск из списка и выберите "Свойства"
  3. Нажмите на вкладку "Оборудование".
  4. Выделите диск, с которым у вас возникли проблемы, в списке дисков и нажмите "Свойства".
  5. Нажмите на вкладку "Политики".
  6. Вы увидите две радиокнопки - "Оптимизировать для быстрого удаления" и "Оптимизировать для производительности".
  7. Если не выбрано, выберите .. "Оптимизация для повышения производительности" и нажмите "ОК" (external.hard drive drive). Если вы используете Vista или Windows 7, также отметьте "включить кэширование записи на диск" (Внутренние жесткие диски).
  8. Нажмите "ОК" и выйдите .. убедитесь, что это сделано на обоих жестких дисках

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