Считать весь файл в память, затем обработать содержимое в памяти.
Файловый ресурс (например, жесткий диск) наиболее эффективен, когда двигатель продолжает вращаться.Таким образом, одно большое чтение данных более эффективно, чем 5 операций чтения небольших объемов данных.
На большинстве платформ доступ к памяти быстрее, чем к файлу.Используя эту информацию, можно сделать программу более эффективной, считывая данные в память, а затем обрабатывая ее.
Сочетание двух методов приведет к повышению производительности: считывание большого количества данных за одну транзакцию в память и обработка памяти.
Некоторые люди объявляют большие массивы char
или unsigned char
(для двоичных данных).Другие люди говорят std :: string или std :: vector зарезервировать большой объем памяти, а затем считывают данные в структуру данных.
Кроме того, чтение блока (a.ka. istream::read()
) будет обходить большинство медленных частей средств потока C ++.