world game debate benchmarks performance comparison

performance - game - Diferencia entre una matriz de bytes y MemoryStream



pc compare (2)

Un MemoryStream es básicamente una matriz de bytes con una interfaz de secuencia, por ejemplo, lectura / escritura secuencial y el concepto de una posición actual.

Estoy leyendo un archivo binario en un programa de análisis. Tendré que recorrer el archivo y buscar ciertos marcadores para poder dividir el archivo y pasar esas partes a los respectivos constructores de objetos.

¿Hay alguna ventaja de mantener el archivo como una secuencia, ya sea MemoryStream o FileStream, o debería convertirse en una matriz de bytes []?

Keith


Un byte[] o MemoryStream requerirán traer el archivo completo a la memoria. Un MemoryStream es realmente un envoltorio alrededor de una matriz de bytes subyacente. El mejor enfoque es tener dos FileStream (uno para entrada y otro para salida). Lea de la secuencia de entrada buscando el patrón utilizado para indicar que el archivo debe separarse mientras escribe en el archivo de salida actual.

Es posible que desee considerar envolver los archivos de entrada y salida en un BinaryReader y BinaryWriter respectivamente si agregan valor a su escenario.