the modify increasing how calculate 8gb 12gb windows memory virtual-memory

modify - virtual memory windows 10 12gb ram



Windows: tamaño de compromiso frente a tamaño virtual (3)

El tamaño de compromiso es la cantidad de espacio reservado en el archivo de paginación para el proceso. Se usa cuando sus páginas deben intercambiarse para dejar espacio en la RAM para otros procesos.

Y sí, el tamaño de la memoria virtual será mayor ya que incluye las páginas que no están respaldadas por el archivo de paginación. Al menos las secciones de código y recursos en el EXE y las DLL no reubicadas. Cuando sea necesario, esas páginas simplemente pueden descartarse y recargarse desde el archivo. Todas las DLL del sistema operativo se ajustan a esta categoría. Además, cualquier archivo mapeado en memoria utilizado por el proceso. La utilidad VMMap de SysInternals puede dar una idea.

Me gustaría saber la diferencia exacta entre el Tamaño de confirmación (visible en el Administrador de tareas ) y el Tamaño virtual (visible en el Explorador de procesos de SysInternals).

El parámetro Tamaño virtual en Process Explorer parece un indicador más preciso del uso total de memoria virtual por un proceso. Sin embargo, el Tamaño de confirmación siempre es más pequeño que el Tamaño virtual y supongo que no incluye toda la memoria virtual en uso por el proceso. Me gustaría que alguien explicara qué está exactamente incluido en estos parámetros.


El tamaño virtual es el tamaño del espacio de direcciones virtuales del proceso.

Al asignar memoria, puede solicitar un rango de direcciones sin comprometer la memoria. Esas direcciones no apuntan a la memoria física hasta que se utiliza una segunda llamada de asignación para confirmarlas.

Lea más en VirtualAlloc . Linux tiene la función mmap que hace lo mismo.


La memoria se puede reservar, comprometer, acceder primero y ser parte del conjunto de trabajo. Cuando la memoria está reservada , una parte del espacio de direcciones se reserva, no sucede nada más.

Cuando se compromete la memoria, el sistema operativo garantiza que las páginas correspondientes podrían, en principio, existir en la memoria RAM física o en el archivo de la página. En otras palabras, cuenta hacia su límite máximo de páginas disponibles totales en el sistema, y formalmente crea páginas. Es decir, crea páginas y pretende que existen (cuando en realidad todavía no existen).

Cuando se accede a la memoria por primera vez, las páginas que existen formalmente se crean para que realmente existan. O bien se proporciona una página cero al proceso, o los datos se leen en una página desde un mapeo. La página se mueve al conjunto de trabajo del proceso (pero no necesariamente permanecerá ahí para siempre).

Cada proceso en ejecución tiene una cantidad de páginas que se encuentran en RAM de forma lógica y real , es decir, que estas páginas existen, y que también existen "oficialmente". Este es el conjunto de trabajo del proceso.
Además, cada proceso en ejecución tiene páginas que están realmente en RAM, pero ya no existen oficialmente en RAM. Pueden estar en lo que se llama la "lista de espera" o parte de la memoria caché del búfer, o algo diferente. Cuando se accede a estos, el sistema operativo puede simplemente moverlos nuevamente al conjunto de trabajo.
Por último, cada proceso tiene páginas que no están en RAM (ya sea en swap o aún no existen).

El tamaño virtual comprende el tamaño de todas las páginas que el proceso ha reservado .

El tamaño de compromiso solo comprende las páginas que se han confirmado .

Es decir, en términos sencillos, "tamaño virtual" es más o menos tu propio problema, y ​​solo limitado por el tamaño de tu espacio de direcciones, mientras que "tamaño de compromiso" es un problema de todos ya que consume un recurso global limitado (RAM más intercambio). Por lo tanto, afecta a otros procesos .