Pregunta

Estoy intentando leer algunos archivos de texto (alrededor de 300 kb cada uno). Hasta ahora he estado usando la Secuencia de archivo para abrir el archivo y leerlo. ( DELIMITADO POR TABULACIONES ). Sin embargo, he oído acerca del archivo de memoria asignada en .NET 4.0. Tendría mi lee más rápido?

¿Hay algún código de ejemplo que hace la lectura de un archivo simple y comparar el rendimiento?

¿Fue útil?

Solución

Si los archivos están en el disco y sólo tiene que ser leído en la memoria, y luego usando un archivo de memoria asignada no ayuda en absoluto, ya que todavía hay que leerlos desde el disco.

Si todo lo que está haciendo es leer los archivos, no hay ningún punto en la asignación de memoria de ellos.

memoria archivos son para su uso cuando se está haciendo un trabajo intensivo de mapeado con el archivo (lectura, escritura, cambiando) y desea evitar el disco IO.

Otros consejos

Si usted es solo una vez y luego de leer archivos mapeados en memoria no tienen sentido; todavía tiene la misma cantidad de tiempo para cargar los datos desde el disco. archivos mapeados en memoria sobresalen cuando muchos aleatoria de lectura y / o escritura deben realizarse en un archivo ya que no hay necesidad de interrumpir las operaciones de lectura o escritura con operaciones de búsqueda.

Con cantidad de su de los FMM de datos no dan ninguna ventaja. Sin embargo, en general, si se molesta en realizar las pruebas, se encontrará que copiar grandes (enormes) archivos utilizando los FMM es más rápido que llamar ReadFile / WriteFile secuencialmente. Esto es causado por diferentes mecanismos utilizados internamente en Windows para la administración de MMF y para el archivo de IO.

El procesamiento de datos en la memoria siempre más rápido que hacer algo similar a través de IO de disco. Si el procesamiento es secuencial y encaja fácilmente en la memoria, puede utilizar File.ReadLines ( ) para obtener datos línea a línea y procesarlos rápidamente sin sobrecarga de la memoria dura. Aquí ejemplo: ¿Cómo abrir un archivo de texto grande en C #

Comprobar esta respuesta también: Cuándo utilizar archivos mapeados en memoria

del archivo mapeado en memoria no se recomienda para leer archivos de texto. Para leer un archivo de texto que está haciendo bien con Filestream. MMP es mejor leer datos binarios.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top