Самый эффективный метод для чтения данных - это чтение множества «порций» или записей в память с использованием наименьшего количества вызовов функций ввода / вывода, а затем анализ данных в памяти.
Например, чтение 5 записей одним вызовом fread
более эффективно, чем 5 вызовов fread
для чтения в записи.Доступ к памяти всегда быстрее, чем к внешним данным, таким как файлы.
Некоторые платформы имеют возможность отображать файл в памяти.Это может быть более эффективным, чем чтение с использованием функций ввода / вывода.Профилирование определит наиболее эффективный.
Записи фиксированной длины всегда более эффективны, чем записи переменной длины.Записи переменной длины включают либо чтение, пока не будет считан фиксированный размер, либо чтение, пока не будет найдено значение терминала (часового).Например, текстовая строка является переменной записью и должна считываться по одному байту за раз, пока не будет найден завершающий маркер конца строки.В этом случае может помочь буферизация.