¿Qué sucede cuando una computadora se queda sin RAM?

9

Hace poco, por curiosidad, escribí un programa Java que ocupa mucha memoria muy rápido. (Agrega BufferedImages a una matriz en un bucle).

Mantuve el Monitor del sistema de Windows abierto para observar el uso de RAM mientras se ejecutaba.

Cuando comencé el programa, el uso de RAM aumentó muy rápido, y como alcanzó aproximadamente el 100% de mis 6 GB de RAM, mi computadora se volvió extremadamente lenta. Después de aproximadamente un minuto, logré terminar el programa y mi computadora lentamente recuperó la velocidad. Lo que me llamó la atención fue que el uso de la memoria primero disminuyó lentamente, luego de repente se redujo a casi 0 MB antes de volver al uso inactivo en alrededor de 2-2.5 GB.

Tomé una captura de pantalla del uso de RAM en el Monitor del sistema:

ingrese la descripción de la imagen aquí

Me preguntaba si alguien podría explicar qué sucede cuando la computadora se queda sin memoria y por qué no vuelve a estar inactiva justo después de que finaliza el programa, sino más bien unos 60 segundos después. Además, ¿por qué el uso se reduce a nada en lugar de solo el uso inactivo?

usuario1291510
fuente
Eso no es 0 MB (o incluso cerca). Suponiendo que tomó una captura de pantalla de todo el gráfico, entonces el punto más bajo es 814MB ; aún más si lo recortaste.
Synetech

Respuestas:

15

Cuando comience a alcanzar el límite de la memoria principal, su sistema operativo comenzará a cambiar la memoria al disco para dejar espacio para más cosas (esto se llama paginación ). Es por eso que su computadora se está volviendo muy lenta porque la unidad de disco es mucho más lenta que la RAM, incluso si está en una SSD, y también es la razón por la que su programa puede continuar sin memoria principal.

La memoria inactiva a menudo se intercambia primero para que los programas activos puedan tener la mayor cantidad de RAM posible. Esta es la razón por la cual el uso de memoria cae por debajo del estado inactivo habitual. El sistema comenzará a intercambiar páginas de memoria nuevamente y la memoria inactiva se llenará eventualmente de RAM.

Emil Vikström
fuente