Pregunta

  1. CreateFileMapping y MapViewOfFile, y luego hacer E / S con una función como establecimiento de memoria.
  2. Sólo tiene que utilizar de lectura / escritura de archivo.

Es la primera de ellas más rápido que el segundo? Yo no entiendo eso.

¿Por qué es más rápido?
Si usamos un objeto de sección, entonces podemos obtener más beneficios de caché de VMM o el Administrador de caché?

¿Fue útil?

Solución

mapeo de memoria de archivos es más rápido cuando se produce la página cabo, como el propio archivo de paginación se utiliza como almacenamiento.

Si la memoria en el archivo de memoria asignada no se cambia no hay necesidad de enjuagar el la página al archivo de paginación que los datos están en el archivo ya y ventanas puede releer la página del disco. archivos .EXE y .DLL se cargan mediante este mecanismo y por lo tanto son su propio almacenamiento de la página.

Si la memoria en el archivo de mapeado de memoria está escrito, y luego la página cabo es lo mismo que si se hubiera utilizado el archivo de paginación. Más rápido, posiblemente, como se usa el mismo lugar en el disco (con optimizaciones NTFS).

Las API de civil consumen archivo de página respaldado memoria para almacenar el contenido del archivo, mientras que en la memoria.

En la perspectiva ligeramente diferente ambas API se optimizan los archivos de memoria asignada son en realidad puede ser utilizado las API de lectura / escritura de archivos bajo el capó para que pueda obtener un micro-optimización que está utilizando un menor abstracción

Ambos mecanismos emplearán el administrador de VMM / caché.

Otros consejos

El uso de ReadFile / WriteFile implica varios bloques de memoria extra operaciones de copia, por lo que será más lento, que el uso de los FMM. Otra pregunta es cuánto más lenta será - esto es lo que hay que medir el mismo.

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