Leer todo el archivo en la memoria VS leer en fragmentos

Soy relativamente nuevo en C # y la programación, así que tengan paciencia conmigo. Estoy trabajando en una aplicación en la que necesito leer algunos archivos y procesarlos en fragmentos (por ejemplo, los datos se procesan en fragmentos de 48 bytes).

Me gustaría saber qué es mejor, en términos de rendimiento, leer todo el archivo a la vez en la memoria y luego procesarlo o leer el archivo en fragmentos y procesarlos directamente o leer datos en fragmentos más grandes (múltiples fragmentos de datos que luego se procesan).

Cómo entiendo las cosas hasta ahora:

Leer todo el archivo en la memoria
pros:
-Es rápido, porque la operación más costosa es buscar, una vez que la cabeza está en su lugar puede leer bastante rápido

contras
-Consume mucha memoria
-Consume mucha memoria en muy poco tiempo (esto es a lo que principalmente le temo, porque no quiero que afecte notablemente el rendimiento general del sistema)

Leer el archivo en trozos
pros:
-Es más fácil (más intuitivo) implementar

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

-Consume muy poca memoria

contras
-Esopodrí tome mucho más tiempo, si el disco tiene que buscar el archivo nuevamente y mover la cabeza a la posición apropiada, que en promedio cuesta alrededor de 12 ms.

Sé que la respuesta depende del tamaño del archivo (y el hardware). Supongo que es mejor leer todo el archivo de una vez, pero para qué tamaño de archivo es así,Cuál es el tamaño máximo recomendado para leer en la memoria de una vez (en bytes o en relación con el hardware, por ejemplo,% de RAM)?

Gracias por tus respuestas y tu tiempo.

Respuestas a la pregunta(2)

Su respuesta a la pregunta