Есть ли разница в производительности между двоичным и текстовым режимом при записи в файл в c? - PullRequest
0 голосов
/ 24 февраля 2012

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

Ответы [ 2 ]

3 голосов
/ 24 февраля 2012

Текстовый режим выполняет перевод новой строки, так что

fprintf(myfile, "\n");

может генерировать один байт (0x0a, перевод строки) в Unix-подобных системах и два (0x0d, 0x0a, возврат каретки и перевод строки)на винде.Это требует времени, так как это означает, что каждый байт должен быть проверен.Если это действительно имеет значение по сравнению со скоростью системы ввода-вывода, конечно, сильно варьируется.

1 голос
/ 24 февраля 2012

В двоичном режиме данные записываются без изменений.В текстовом режиме может быть некоторый дополнительный код для обработки '\n' и '\r' (в DOS / Windows '\n' расширяется до '\r\n').В любом случае, скорости дисков на несколько порядков ниже, чем у оперативной памяти, и я бы не стал сильно беспокоиться о режиме здесь, если, конечно, не окажется, что кэширование отличается в двух режимах.

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