2009-06-10 23 views
5

¿Es correcto suponer que el consumo total de memoria (virtual + físico) de un sistema es la suma de las columnas "Uso de memoria" y "Tamaño de VM" mostrado por el administrador de tareas en Windows?Consumo total de memoria del sistema

Respuesta

1

No, la memoria física y la memoria virtual pueden solaparse. Si una página de memoria está en la memoria virtual y luego se localiza en la memoria física, la memoria virtual no se libera necesariamente, puede reservarse para cuando la página se localice nuevamente.

+0

Pero aún así que es la memoria consumida. A pesar de que es una especie de desperdicio. Está bien conmigo si incluso está a punto de recoger basura. siempre que se haya utilizado es aceptable. Estoy más interesado en ¿hay algo más al lado de estas dos columnas? (tal vez el uso interno de memoria Kernal no se ha mostrado en el administrador de tareas) –

2

En Windows moderno realmente no hay una sola verdad sobre el "Consumo de memoria total". Depende, por supuesto, de la definición, pero la verdadera pregunta es qué quieres hacer con la respuesta.

Algunos procesos como SQL-Server tienden a usar cada byte de memoria que pueden tener en sus manos, si los permite. El recolector de basura .NET CLR supervisa el uso de la memoria y actúa en consecuencia, tratando de liberar más memoria cuando escasea.

Así, por ejemplo, puede tener un sistema con 8 GB de memoria física, de los cuales el 90% es "usado". La cantidad de esa memoria es realmente necesaria, es muy difícil de decir. El mismo sistema puede ejecutarse en una máquina de 4 GB sin pérdida de rendimiento notable o cualquier otro problema.

Si desea explorar algunas de las complejidades de la administración de memoria en Windows, descargue "VMMap v2.0" desde el antiguo sitio sysinternals. Muestra un uso de memoria muy detallado por proceso y puede ayudarte en tu búsqueda.

citar de Ayuda VMMaps: VMMap categoriza de memoria en uno de varios tipos:

imagen La memoria representa un archivo ejecutable como un archivo .exe o .dll. La columna Detalles muestra la ruta del archivo.

Privado La memoria privada no se puede compartir con otros procesos, se carga con el límite de confirmación del sistema y, por lo general, contiene datos de la aplicación.

Shareable memoria Shareable puede ser compartido con otros procesos, se carga contra el sistema comprometen límite y típicamente contiene datos compartidos entre DLL en diferentes procesos o mensajes de comunicación entre procesos. Las API de Windows se refieren a este tipo de memoria como secciones respaldadas por archivos de paginación.

Archivo asignado La memoria representa un archivo en el disco y la columna de Detalles muestra la ruta del archivo. Los archivos asignados suelen contener datos de aplicaciones.

Montón Montones representan memoria administrada por el administrador de la pila en modo usuario y, al igual que la memoria privada, se carga contra el sistema cometer límite y contiene datos de aplicación.

Managed Heap El montón administrado representa la memoria asignada y utilizada por .NET garbage collector.

Pila Las pilas son memoria utilizada para almacenar parámetros de la función, las variables de función locales de disco y la función de invocación de hilos individuales.Las pilas se cargan contra el límite de compromiso y, por lo general, crecen según la demanda.

Sistema La memoria del sistema es la memoria física en modo kernel asociada con el proceso. La gran mayoría de la memoria del sistema consiste en las tablas de página de proceso.

Gratis Las regiones de memoria libres son espacios en el espacio de direcciones de proceso que no están asignados.

Ahora solo necesita definir qué tipos de memoria considera que son "usados", agregarlos para todos los procesos, eliminar múltiples duplicados y mirar el número ... Hay una razón por la cual en el administrador de tareas u otras herramientas , no hay un número único llamado "consumo de memoria total" :-)

Cuestiones relacionadas