5

Trabajo en una aplicación de usuario final de 32 bits que necesita mucha memoria. Hasta varios gigabytes. Recientemente cambié nuestra estrategia de asignación de memoria interna para usar archivos mapeados en memoria sin archivos inspirados en this Raymond Chen article. Funciona muy bien.Archivos mapeados de memoria: cómo monitorear el uso de la memoria

El único inconveniente es este: si asigno un gigabyte de memoria de esta manera, no aparece en ningún lado en los contadores de rendimiento. Por supuesto, sé cuánto se asigna, y cuánto de él está mapeado en mi espacio de direcciones, pero no sé cómo se divide en la memoria física y el archivo de la página. Me gustaría saber, si no por otra razón que iniciar sesión para la depuración.

+0

Debería aparecer en Proceso -> Archivo de página Bytes – John

Respuesta

0

La solución fue supervisar mi aplicación con sysinternals' VMMap. Esto desglosa el uso de la memoria de aplicaciones por tipo de asignación (mis archivos mapeados en memoria se denominan "compartidos"), así como por estado (en memoria o intercambiado).

¡Incluso hay un mapa de fragmentación de memoria gráfica!

0

Llame al QueryWorkingSet y cuente el número de páginas que se encuentran dentro de su rango asignado para determinar qué parte de su memoria forma parte del conjunto de trabajo. Pero tenga en cuenta que las páginas podrían excluirse del conjunto de trabajo pero aún estar en la memoria física en alguna parte.

+0

¡Interesante! Podría haber un inconveniente: Windows podría haber eliminado las páginas de mi conjunto de trabajo cuando no tengo acceso a ellas por un tiempo. Supongo que las ventanas los mantendrán en la memoria física a menos que alguien más necesite la memoria. –

Cuestiones relacionadas