Un tamaño de memoria intermedia de 1k parece un poco pequeño. En general, no existe un tamaño de búfer de "talla única". Debe establecer un tamaño de búfer que se ajuste al comportamiento de su algoritmo. Ahora, en general, no es una buena idea tener un buffer realmente grande, pero tener uno que sea demasiado pequeño o que no esté en línea con la forma en que se procesa cada fragmento tampoco es tan bueno.
Si simplemente está leyendo los datos un trozo tras otro completamente en la memoria antes de procesarlo, usaría un buffer más grande. Probablemente usaría 8k o 16k, pero probablemente no más grande.
Por otro lado, si está procesando los datos en forma de transmisión, leyendo un fragmento y luego procesándolo antes de leer el siguiente, los búferes más pequeños podrían ser más útiles. Aún mejor, si está transmitiendo datos que tienen estructura, cambiaría la cantidad de datos leídos para que coincidan específicamente con el tipo de datos que está leyendo. Por ejemplo, si está leyendo datos binarios que contienen un código de 4 caracteres, un flotador y una cadena, leería el código de 4 caracteres en una matriz de 4 bytes, así como también el flotador. Leería la longitud de la cadena, luego crearía un búfer para leer todo el fragmento de datos de cadena a la vez.
Si está realizando un procesamiento de datos en tiempo real, examinaría las clases BinaryReader y BinaryWriter. Esto le permite trabajar con datos binarios muy fácilmente, sin tener que preocuparse demasiado por los datos en sí. También le permite desacoplar el tamaño de su búfer de los datos reales con los que está trabajando. Puede establecer un búfer de 16k en la secuencia subyacente y leer valores de datos individuales con el BinaryReader con facilidad.
Puede ser útil: http://stackoverflow.com/questions/19558435/what-is-the-best-buffer-size-when-using-binaryreader-to-read-big-files-1gb/19837238? noredirect = 1 # 19837238 –