Pregunta

¿Es posible crear un archivo mapeado de memoria para la comunicación interprocesada con una garantía de que el contenido siempre se mantiene en RAM y no se descarga al archivo de página?

Actualmente estoy trabajando en una aplicación OLAP a medida. La idea central es tener un proceso como un banco de memoria que contiene todos los datos y múltiples procesos de trabajadores que realmente hacen el cálculo. Si bien generalmente todo funciona muy bien, de vez en cuando hay un hipo de rendimiento cuando un trabajador intenta crear una vista en una parte de un archivo que no se ha utilizado por un tiempo, de ahí mi pregunta.

La cantidad de RAM no es un problema (Windows/64 bit): simplemente no sabemos si es posible evitar que el sistema use un archivo de página.

¿Fue útil?

Solución

Probablemente estés buscando el VirtualLock función.

Bloquea la región especificada del espacio de direcciones virtuales del proceso en la memoria física, asegurando que el acceso posterior a la región no incurra en una falla de la página.

Advierte lector.

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