Чтение всего файла в памяти VS чтение по частям

Я относительно новичок в C # и программировании, поэтому, пожалуйста, терпите меня. Я Я работаю над приложением, в котором мне нужно читать некоторые файлы и обрабатывать эти файлы кусками (например, данные обрабатываются кусками по 48 байт).

Я хотел бы знать, что лучше с точки зрения производительности читать весь файл сразу в памяти, а затем обрабатывать его или читать файл по частям и обрабатывать их напрямую, или читать данные большими кусками (несколько фрагментов данных, которые затем обрабатываются). -Он потребляет много памяти за очень короткое время (это то, чего я больше всего боюсь, потому что я не хочу, чтобы это заметно влияло на общую производительность системы)

Чтение файла по частям
плюсы:
- Проще (более интуитивно понятно) реализовать

while(numberOfBytes2Read > 0)
   read n bytes
   process read data

-Он потребляет очень мало памяти

Минусы:
-Это может занять гораздо больше времени, если диск должен снова искать файл и перемещаться голову в соответствующее положение, что в среднем стоит около 12 мсек.

Я знаю, что ответ зависит от размера файла (и оборудования). Я предполагаю, что лучше читать весь файл сразу, но насколько большие файлы верны, каков максимальный рекомендуемый размер для одновременного чтения в памяти (в байтах или относительно оборудования - например,% от RAM)?

Спасибо за ответы и время.

5
задан skaffman 6 May 2011 в 11:50
поделиться