¿Existe una API para hacer la asignación de memoria, al igual que¿Hay una API de asignación de memoria en la plataforma de Windows, al igual que mmap() en Linux?
mmap()
en Linux?
¿Existe una API para hacer la asignación de memoria, al igual que¿Hay una API de asignación de memoria en la plataforma de Windows, al igual que mmap() en Linux?
mmap()
en Linux?
asignación de archivo es la asociación de contenido de un archivo con una porción del espacio de dirección virtual de un proceso. El sistema crea un objeto de asignación de archivos (también conocido como objeto de sección ) para mantener esta asociación. Una vista de archivo es la parte del espacio de direcciones virtuales que utiliza un proceso para acceder al contenido del archivo. La asignación de archivos permite que el proceso use entradas y salidas aleatorias (E/S) y E/S secuencial. También permite que el proceso funcione de manera eficiente con un archivo de datos grande, como una base de datos, sin tener que asignar todo el archivo a la memoria. Múltiples procesos también pueden usar archivos mapeados en memoria para compartir datos.
Los procesos leen y escriben en la vista de archivo usando punteros, tal como lo harían con la memoria asignada dinámicamente. El uso de la asignación de archivos mejora la eficiencia porque el archivo reside en el disco, pero la vista del archivo reside en la memoria. Los procesos también pueden manipular la vista de archivo con la función VirtualProtect.
Depende de para qué lo quiere usar exactamente. Si desea mapear archivos existentes en la memoria, eso es compatible con memory-mapped files. También se pueden usar para compartir memoria entre procesos (use un objeto de asignación con nombre sin ningún archivo subyacente). Si desea asignar memoria física, generalmente no es compatible con el modo de usuario, aunque hay algunos trucos.
Solo quiero asignar un archivo a la memoria para que pueda obtener un mayor rendimiento de E/S – Fernandez
Eso debería funcionar entonces. Aquí hay algunos ejemplos de código para hacer la asignación de archivos en Win32: http://mollyrocket.com/forums/viewtopic.php?p=2529 –
@IgorSkochinsky: [CreateFileMapping] (http://msdn.microsoft.com/en-us/ library/aa366537 (v = vs.85) .aspx) "Si hFile es INVALID_HANDLE_VALUE ... CreateFileMapping crea un objeto de asignación de archivos de un tamaño específico respaldado por el archivo de paginación del sistema en lugar de por un archivo en el sistema de archivos." ¿Es eso lo que quiso decir con "mapeo de la memoria física"? –
al menos proporcionar un enlace webarchive – beppe9000