¿Salir de una ventana no guardada en mi editor de texto, hoja de cálculo, aplicaciones, etc., liberará mi RAM? ¿Guardarlos en archivos liberará mi RAM? Si es así, ¿cómo es que?

Depende del sistema operativo, el entorno de tiempo de ejecución y el diseño de la aplicación.

La aplicación necesita asignar memoria para cualquier ventana de documento. El enfoque razonable para esto es asignar dinámicamente un bloque de memoria llamando a las API del sistema. Y cuando ya no necesite esa memoria, puede descartarla. Las API del sistema se llamarán para “reciclar” la memoria previamente asignada, y será reclamada por el sistema y teóricamente puede ser utilizada por otras aplicaciones.

Sin embargo, hay varias excepciones:

  1. Es posible que el sistema operativo no marque la memoria liberada como “libre” de inmediato. En algunos sistemas operativos, se marcará como inactivo y solo se reclamará cuando se quede sin memoria libre.
  2. Es posible que el entorno de tiempo de ejecución con mecanismo de recolección de basura no llame a las API del sistema para liberar el bloque de memoria inmediatamente cuando lo descarta. La recolección de basura generalmente se ejecuta en un subproceso paralelo del entorno de tiempo de ejecución y tardaría un tiempo en activarse; a menos que su aplicación fuerce el tiempo de ejecución a hacerlo de inmediato, como el método System.gc() en Java.
  3. NO es necesario que la aplicación / tiempo de ejecución deba llamar a las API del sistema después de descartar el bloque de memoria. La memoria descartada puede ser preservada por la aplicación misma. La próxima vez que necesite asignar memoria nuevamente, primero usará la memoria asignada anteriormente para aumentar el rendimiento. Casi todas las implementaciones salidas del contenedor de datos C ++ STL tienen un mecanismo incorporado que algunos programadores experimentados ni siquiera lo sabían.

Entonces, si la memoria asignada se puede “liberar” depende de muchas cosas.

Hablando en general, sí. ¿Cuánto cuesta? Depende. Cuando inicia un programa, utiliza una cantidad finita de RAM. Cuantos más documentos o páginas web abra, más RAM se utilizará. Hasta que llegue al límite de su RAM física y el sistema comience a intercambiar memoria al disco, pero esto invoca un gran impacto en el rendimiento. Por lo tanto, por el contrario, el cierre de documentos y sitios web disminuirá la cantidad de RAM utilizada. Y cerrar programas también liberará la RAM que se utilizó para ejecutar el programa.

No confunda el almacenamiento en disco con la memoria. No són la misma cosa. La RAM es memoria y es volátil. Un disco es un almacenamiento no volátil. Lo ÚNICO con lo que una computadora puede trabajar es lo que está almacenado en la memoria, o RAM. Para usar cualquier cosa de un disco, primero debe cargarse en la RAM. Incluso cuando se cambia la memoria al disco, el propósito es liberar RAM colocando algunos de los contenidos de RAM en el disco hasta que sea necesario nuevamente. Las únicas cosas activas que se ejecutan en su sistema están en la RAM. Período.

No estoy seguro de cómo explicar “por qué”. Simplemente es.’ Si abre un programa, usa parte de la RAM. Todos los programas Cuantos más programas abra, más memoria asignará a los programas. Cerrar los programas libera esa memoria.

Es lo mismo con los documentos. El contenido de cada documento que tenga abierto debe guardarse en algún lugar, y el único lugar donde una computadora puede trabajar en algo, una vez más, es en RAM / memoria, así que ahí es donde se guarda.

Eso depende completamente de la aplicación. No hay correlación entre escribir un archivo y liberar memoria, ya que, por ejemplo, en un editor puede continuar editando la información después de que se haya guardado, por lo que no se puede liberar RAM.

A todos los efectos prácticos, guardar el estado actual de su trabajo no liberará RAM. Cerrar el programa que está utilizando para crear ese trabajo lo hará.