Я относительно новичок в C # и программировании, поэтому, пожалуйста, терпите меня. Я Я работаю над приложением, в котором мне нужно читать некоторые файлы и обрабатывать эти файлы кусками (например, данные обрабатываются кусками по 48 байт).
Я хотел бы знать, что лучше с точки зрения производительности читать весь файл сразу в памяти, а затем обрабатывать его или читать файл по частям и обрабатывать их напрямую, или читать данные большими кусками (несколько фрагментов данных, которые затем обрабатываются). -Он потребляет много памяти за очень короткое время (это то, чего я больше всего боюсь, потому что я не хочу, чтобы это заметно влияло на общую производительность системы)
Чтение файла по частям
плюсы:
- Проще (более интуитивно понятно) реализовать
while(numberOfBytes2Read > 0)
read n bytes
process read data
-Он потребляет очень мало памяти
Минусы:
-Это может занять гораздо больше времени, если диск должен снова искать файл и перемещаться голову в соответствующее положение, что в среднем стоит около 12 мсек.
Я знаю, что ответ зависит от размера файла (и оборудования). Я предполагаю, что лучше читать весь файл сразу, но насколько большие файлы верны, каков максимальный рекомендуемый размер для одновременного чтения в памяти (в байтах или относительно оборудования - например,% от RAM)?
Спасибо за ответы и время.