Comment libérer de la mémoire "hibernation complète" d'un processus?

Similaire à ceci: Comment "hiberner un processus" sous Linux / Windows?

Existe-t-il des méthodes pour hiberner un processus de manière à ne pas rester en mémoire? Par exemple: si je ne veux pas utiliser Firefox et je ne veux pas fermer le processus, et j'ai besoin d'une mémoire gratuite, alors, comment puis-je vraiment hiberner le processus afin que la mémoire réservée par Firefox soit libérée?

J'ai besoin d'une solution pour Windows et Linux!

Si je ne veux pas utiliser Firefox, je ne veux pas fermer le processus, et j'ai besoin d'une mémoire gratuite, alors comment puis-je vraiment hiberner le processus afin que la mémoire réservée par Firefox soit libérée?

Pour Windows, il existe Free Freezer Protocole .

Pour Linux et Mac OS X, il existe CrypoPID , comme mentionné dans la réponse de yeedl .


Si vous souhaitez proposer une solution personnalisée:

Examinez le process dumping sur Windows, par ex. ProcDump , reprenez-le avec un débogueur CLI de WinDBG .

Examinez le core dumping sur Linux, par ex. Core , reprenez-le avec un débogueur CLI comme GNU GDB .

Je parie qu'une solution basée sur un logiciel qui n'implique pas un débogueur est possible, mais c'est pour Stack Overflow .


Vous recherchez un cas d'utilisation très spécifique, pourquoi ne pas simplement suspendre et laisser échouer?

Vous passerez plus de temps à faire fonctionner vos processus et à suspendre …

Je crois que vous pouvez optimiser votre flux de travail d'une autre manière qui serait plus transparente.

Windows et Linux / Unix fournissent un moyen de suspendre ou d'arrêter l'exécution d'un processus, en le supprimant de la liste des processus exécutables.

Cela n'affecte pas directement les pages de mémoire appartenant à un processus, mais au fil du temps, alors que le système est soumis à une pression pour la mémoire, ces pages seront de bons candidats pour échanger sur le disque.

Essayer d'écrire un processus sur le disque pour une reprise ultérieure ne fonctionnera pas pour tout ce qui n'est pas trivial. Ouvrez les poignées sur le réseau et le système de fenêtrage échouera dès que le processus reprendra.

Je sais que dans Firefox, vous pouvez enregistrer une session.

Dans Linux, cela peut se faire avec CrypoPID .

Cette question et celle- ci essayent de la répondre à Windows, mais je n'ai pas trouvé une excellente solution pour sauvegarder un état d'application dans un fichier comme je l'ai fait pour linux.

Pour Windows:

Je ne connais aucun moyen d'évacuer complètement un processus de la mémoire sans le tuer, mais vous pouvez réduire son jeu de travail en minimisant sa fenêtre principale. Microsoft a un article expliquant ceci: l' ensemble de travail d'une application est découpé lorsque sa fenêtre de niveau supérieur est minimisée .

Donc, commencez par minimiser la (les) fenêtre (s) principale (s), puis suspendez le processus comme indiqué dans la question que vous avez associée .

Vous pouvez accomplir les deux avec l' Explorateur de processus toujours utile.

  • Processus de clic droit, Fenêtre -> Minimiser
  • Cliquez avec le bouton droit de la souris, suspendez.

Sur Windows, certains programmes peuvent échanger la mémoire de programme "inutilisée".
Un exemple d'un produit qui peut le faire est le process commercial Lasso .
Cependant, même Process Lasso conteste cette pratique.

From The Truth about Windows Optimiseurs de mémoire :

Il est préférable de laisser la gestion de la mémoire virtuelle à Windows et de ne pas la prendre en main. Tout bénéfice de ces programmes est illusoire et temporaire. Vous recevez les pénalités de la mémoire de pagination plus tôt ou tard, même s'il apparaît que le programme que vous exécutez après le nettoyage se charge plus rapidement.

Maintenant, en ce qui concerne Firefox, voir mozillaZine Réduction de l'utilisation de la mémoire – Firefox , qui contient de nombreux conseils sur la façon de découvrir les extensions qui fuient la mémoire.

Il y a aussi l'extension de Firefox Memory Fox qui:

En essayant de réduire l'utilisation de la mémoire RAM du navigateur favorisant l'augmentation des mémoires RAM disponibles pour d'autres exigences de la mémoire RAM des processus d'application. Espérons que cela favorise toute tentative de récupération et de rétention de la mémoire.

Dans mon expérience, cette extension ne pospere que l'inévitable mémoire de Firefox. La seule solution réelle est de fermer Firefox de temps en temps pour libérer de la mémoire.

Vous pouvez envoyer le signal STOP aux processus sous Linux. Un processus arrêté est comme en pause . Pour le reprendre, envoyez le signal CONT Protocole. Pour envoyer le signal, vous pouvez le faire:

 kill -STOP process_id kill -CONT process_id 

Un processus arrêté sera échangé si le système nécessite plus de mémoire.