¿Cómo liberar memoria "hibernando completamente" un proceso?


10

Similar a esto: ¿Cómo "hibernar un proceso" en Linux / Windows?

¿Hay algún método para hibernar un proceso de manera que no permanezca en la memoria? Por ejemplo: si no quiero usar Firefox y no quiero cerrar el proceso, y necesito memoria libre, ¿cómo puedo realmente hibernar el proceso para liberar la memoria reservada por Firefox?

¡Necesito una solución para Windows y Linux!

Respuestas:


4

Si no quiero usar Firefox, y no quiero cerrar el proceso, y necesito memoria libre, ¿cómo puedo realmente hibernar el proceso para liberar la memoria reservada por Firefox?

Para Windows, hay Free Process Freezer .

Para Linux y Mac OS X, existe CrypoPID , como se menciona en la respuesta de yeedl .


Si desea encontrar una solución personalizada:

Mire en process dumpingWindows, por ejemplo. ProcDump , reanúdelo con un depurador CLI de WinDBG .

Mira en core dumpingLinux, por ejemplo. core , reanúdelo con un depurador CLI como GNU GDB .

Apuesto a que es posible una solución basada en software que no implique un depurador, pero eso es para Stack Overflow .


Está buscando un caso de uso muy específico, ¿por qué no simplemente suspenderlo y dejarlo cambiar?

Dedicaría más tiempo a ejecutar y suspender sus procesos ...

Creo que puede optimizar su flujo de trabajo de otra manera que sería más fluida.


5

Tanto Windows como Linux / Unix proporcionan una forma de suspender o detener la ejecución de un proceso, eliminándolo de la lista de procesos ejecutables.

Esto no afecta directamente a las páginas de memoria que posee un proceso, pero con el tiempo, a medida que el sistema se vea presionado por la memoria, esas páginas serán buenas candidatas para cambiar al disco.

Intentar escribir un proceso en el disco para su posterior reanudación no funcionará para nada no trivial. Abra los identificadores de la red y el sistema de ventanas fallará tan pronto como se reanude el proceso.


Tampoco funcionaría para nada trivial. :) +1
user541686

1
Esos identificadores abiertos se acaba de abrir de nuevo o almacenados a lo largo de, por lo que no es realmente un problema ...
Tamara Wijsman

2

Sé que en Firefox puedes guardar una sesión.

En Linux, esto se puede hacer con CrypoPID .

Esta pregunta y esta intentan responderla para Windows, pero no pude encontrar una gran solución para guardar el estado de una aplicación en un archivo como lo hice para Linux.


1

Para ventanas:

No conozco ninguna forma de desalojar completamente un proceso de la memoria sin matarlo, pero puede recortar su conjunto de trabajo minimizando su ventana principal. Microsoft tiene un artículo que explica esto: el conjunto de trabajo de una aplicación se recorta cuando se minimiza su ventana de nivel superior .

Por lo tanto, primero minimice las ventanas principales, luego suspenda el proceso como se sugiere en la pregunta que ha vinculado .

Puede lograr ambas cosas con el siempre útil Process Explorer .

  • Proceso de clic derecho, Ventana -> Minimizar
  • Haga clic derecho nuevamente, Suspender.

1

En Windows, algunos programas pueden intercambiar memoria de programa "no utilizada".
Un ejemplo de un producto que puede hacer eso es el proceso comercial Lasso .
Sin embargo, incluso Process Lasso aconseja contra esa práctica.

De la verdad sobre los optimizadores de memoria de Windows :

Es mejor dejar la administración de la memoria virtual a Windows y no tomarla en sus propias manos. Cualquier beneficio de estos programas es una ilusión y temporal. Usted incurrirá en las penalizaciones de la memoria de paginación tarde o temprano, incluso si parece que el programa que ejecuta después de la limpieza se carga más rápido.

Ahora, en lo que respecta a Firefox, consulte el uso de reducción de memoria de mozillaZine : Firefox , que contiene muchos consejos sobre cómo descubrir qué extensiones pierden memoria.

También existe la extensión de Firefox Memory Fox que:

Intentar reducir el uso de la memoria RAM del navegador promoviendo el aumento de las memorias RAM disponibles para otras aplicaciones procesa los requisitos de memoria RAM. Con suerte, fomentando cualquier intento de recuperación y retención de memoria.

En mi experiencia, esta extensión solo pospone la inevitable acumulación de memoria de Firefox. La única solución real es cerrar Firefox de vez en cuando para liberar memoria.


1

Puede enviar la señal de STOP a los procesos en Linux. Un proceso detenido es como pausado . Para reanudarlo, envíe la señal de proceso CONT. Para enviar la señal puedes hacer esto:

kill -STOP process_id

kill -CONT process_id

Se cambiará un proceso detenido si el sistema requiere más memoria.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.