C # - Создание больших файлов на USB FAST - PullRequest
1 голос
/ 29 ноября 2010

Когда консоль Xbox 360 форматирует USB-устройство емкостью 1 ГБ, оно добавляет к нему 978 МБ данных всего за 20 секунд. Я вижу файлы на USB и они имеют такой размер.

Когда я копирую файл такой же длины в Windows, это занимает 6 минут.

Может быть, это потому, что Windows читает / пишет, а 360 просто пишет?

Есть ли способ создать такие большие файлы на USB с такой производительностью? Файлы могут быть пустыми, конечно. Мне нужно это письмо для моего приложения.

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

Ответы [ 4 ]

3 голосов
/ 29 ноября 2010

Может показаться, что 360 выделяет место для файла и записывает некоторые данные в файл, но в остальном оставляет остальную часть файла заполненной теми данными, которые были там изначально (так называемые "мусорные данные ").Когда вы копируете файл того же размера на диск, он записывает все 978 МБ, что является другим сценарием, и поэтому это занимает намного больше времени.

2 голосов
/ 29 ноября 2010

Скорее всего, 360 не отправляет 978 МБ данных на флешку, но вместо этого создает пустой файл размером 978 МБ - ваш занимает больше времени, потому что вместо того, чтобы просто отправить несколько КБ для изменения информации файловой системы, вы на самом деле отправка 978 МБ данных на устройство.

Вы можете сделать нечто подобное (создать пустой файл фиксированного размера) в Windows с помощью fsutil или Sysinternals "contig": см. Быстрое создание большого файла в системе Windows? - попробуйте это, и вы Вы увидите, что это может занять гораздо меньше 20 секунд (я бы предположил, что 360 отправляет некоторые данные, а также резервирует место для большего). Обратите внимание, что один из ответов показывает, как использовать Windows API для того же, а также скрипт Python.

0 голосов
/ 29 ноября 2010

Все зависит от пропускной способности USB-накопителя.Вам потребуется высокопроизводительный USB, такой как: этот список

0 голосов
/ 29 ноября 2010

Может быть, 360 просто выполняет какие-то прямые манипуляции с заголовками файловой системы? Если вам подходит пустой файл, может, вы попробуете это?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...