2010-02-25 9 views
17

Me gustaría saber si alguien intentó nuevas características .NET 4.0 Memory Mapped Files? Sé que son tan antiguos como el sistema operativo, pero el manejo nativo en .NET es nuevo..NET 4.0 Memory Mapped Files Rendimiento

¿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 sería agradable la comparación de rendimiento con el MMF WinAPI nativo.

Gracias!

+0

no idea hermano no obtienes ningún punto de referencia en la red –

+0

no, no puedo encontrar ningún número sólido ... solo especificación técnica y ventajas. – michajas

Respuesta

4

Los archivos de memoria mapeados en .NET 4.0 (en el nuevo espacio de nombres System.IO.MemoryMappedFiles) simplemente envuelven la API de Win32 para los archivos asignados de memoria.

Eso significa que son lo más rápido posible. Este es el mismo mecanismo que se usa para cargar ensamblajes .NET en la memoria.

En términos de números de tiempo reales, esto dependerá de 32 bits frente a 64 bits, cuánta memoria tiene, qué tan grandes son los archivos, los patrones de acceso y en gran medida el tipo de hardware de disco físico.

Ref: Memory-Mapped Files

+0

gracias, conozco esta referencia, más precisa para esta pregunta debería ser este enlace: http://msdn.microsoft.com/en-us/library/ms810613.aspx (estaba en la página que mencionas). Creo que haré algunos casos de prueba y publicaré los resultados aquí. Pero, tal vez alguien ya los había hecho? – michajas

+0

"Pero, tal vez alguien ya los había hecho?" - los números reales dependerán de bastantes factores, mencionados anteriormente, que es presumiblemente por qué no hay un punto de referencia estándar disponible. –

+0

Conozco estos factores, pero no estoy pensando en un punto de referencia estandarizado, sino en resultados con un caso de prueba completo (hardware, etc.). Sería mejor si se compararan con otros métodos como FileStream, etc. Pregunto sobre esto porque voy a tener que trabajar con archivos de gran tamaño (más de 10 GB) y leer datos aleatorios de ellos. Quiero saber que MMF es la mejor opción :) – michajas

0

En siguiente pregunta que hice una prueba de rendimiento de MemoryMapped archivos frente IO estándar:

Disadvantages of using memory mapped files

yo no era capaz de encontrar grandes inconvenientes o mejor dicho para mis propósitos, el rendimiento es aproximadamente 4 veces más rápido para los archivos mapeados en memoria y en la pregunta puede encontrar algunos consejos interesantes sobre cómo funcionan estos archivos y qué tener en cuenta.

0

En mis pruebas, el rendimiento de .NET 4.5 MMF fue ~ 40% del rendimiento de las llamadas WinAPI nativas, es decir, más del doble de lento.