¿Cuál es la forma más adecuada de utilizar MemoryMappedViewAccessors de .Net 4.0?

StackOverflow https://stackoverflow.com/questions/1236349

  •  11-09-2019
  •  | 
  •  

Pregunta

Cuando se muestra un archivo de gran tamaño, la memoria asignada en una ventana de avance, es más apropiado para tener la vista representan el archivo completo, o sólo la región del archivo que se muestra en ese momento?
En términos más generales, en qué nivel de la abstracción se paginación hecho con la memoria de archivos de mapeado .Net? Es la página de tamaño / cantidad del archivo que tuvo lugar en la memoria relacionada con los MemoryMappedViewAccessors, o es independiente de estos objetos?

¿Fue útil?

Solución

Es independiente; datos no se copia en la memoria hasta que se accede a la dirección (o la dirección de cerca). Sin embargo, el tamaño de la vista cuenta en contra de su espacio de direcciones del proceso. Esto es muy importante en sistemas de 32 bits ya que el espacio de direcciones del proceso está limitado a 2 GB o 3 GB. Esto afecta la capacidad de hacer las asignaciones futuras debido a la posibilidad de que un bloque contiguo del tamaño deseado podría no estar disponible en el espacio de direcciones.

La capacidad de utilizar grandes vistas se cita a menudo como una importante ventaja de los sistemas de 64 bits.

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