c# - Rendimiento de archivos asignados en memoria.NET 4.0
performance .net-4.0 (3)
En la siguiente pregunta, realicé una prueba de rendimiento de los archivos de MemoryMapped versus IO estándar:
Desventajas de utilizar archivos asignados en memoria
No pude encontrar ni grandes inconvenientes para mis propósitos, el rendimiento es 4 veces más rápido para los archivos asignados a la memoria y en la pregunta puedes encontrar algunas sugerencias interesantes sobre la forma en que funcionan estos archivos y qué debes tener en cuenta.
¿Quisiera saber si alguien probó las nuevas funciones de archivos asignados en memoria .NET 4.0? Sé que son tan antiguos como el sistema operativo, pero el manejo nativo en .NET es nuevo.
¿Alguien ha podido probar esto y decir algo sobre el rendimiento? Estoy bastante interesado en el tiempo de acceso a partes aleatorias de archivos binarios, velocidad de escritura, etc. También el desempeño en comparación con WinAPI MMF nativo sería bueno.
¡Gracias!
En mis pruebas, el rendimiento de .NET 4.5 MMF fue de aproximadamente el 40% del rendimiento de las llamadas nativas de WinAPI, es decir, más del doble de lento.
Los archivos asignados en memoria en .NET 4.0 (en el nuevo espacio de nombres System.IO.MemoryMappedFiles
) simplemente envuelven la API de Win32 para los archivos asignados en memoria.
Eso significa que son lo más rápido posible. Este es el mismo mecanismo que se utiliza para cargar los ensamblados .NET en la memoria.
En términos de números de tiempo reales, esto dependerá de 32 bits en comparación con 64 bits, la cantidad de memoria que tenga, el tamaño de los archivos, los patrones de acceso y, en gran medida, el tipo de hardware de disco físico.