Puis-je «mettre en veille prolongée» un programme?

17

Oui, je sais que la mise en veille prolongée s'applique généralement à un ordinateur. (Mettre en veille prolongée, ce qui signifie enregistrer la mémoire du programme sur le disque et pouvoir la restaurer de manière cohérente.)

Cependant, la mise en veille prolongée d'un programme peut être très utile. Supposons que je veuille jouer à un jeu, mais que quelques programmes comme firefox, acrobat prennent 500M de mémoire, donc je veux le libérer. La fermeture puis le démarrage peuvent prendre du temps, surtout si les données de session ne peuvent pas être stockées. Au lieu de cela, je vais les mettre en hibernation. Existe-t-il un moyen de mettre en veille prolongée un programme?

apoorv020
la source
Quel système d'exploitation utilisez-vous?
Ian C.
1
Windows 7, 64 bits. J'ai également reformulé la question.
apoorv020
belle amélioration pour un OS ...
kokbira
2
Connexes (mais pas de réponses) superuser.com/questions/170434/…
Sathyajith Bhat

Réponses:

8

Il y a une question connexe à ce sujet sur StackOverflow. C'est plus lié à la programmation, mais la principale réponse acceptée explique pourquoi ce que vous essayez de faire est difficile et offre une alternative viable.

Fondamentalement, exécutez vos applications `` professionnelles '' dans une machine virtuelle et mettez-la en pause / hibernation / fermez-la lorsque vous souhaitez jouer.

Ƭᴇcʜιᴇ007
la source
4

Bien qu'il ne s'agisse pas d'une mise en veille prolongée réelle , le processus peut être suspendu. Il cessera immédiatement d'utiliser les cycles CPU, mais utilisera toujours la mémoire. Heureusement, cette mémoire sera remplacée par un fichier d'échange, si vous lancez ensuite une application gourmande en mémoire, ce n'est donc pas un vrai problème. Le processus suspendu ne peut pas survivre au redémarrage \ déconnexion, mais ce sera suffisant pour jouer à un jeu.

Question connexe: suspendre / reprendre un processus en toute simplicité?

En interne, la suspension de processus peut se faire via différentes approches :

  • Paire de fonctions SuspendThread et ResumeThread .

  • NtSuspendProcess (non officiellement documentée) qui a été introduite avec Windows XP Sp0 et fonctionne depuis sur chaque version du système.

  • Interface de débogage fournie par Microsoft, utilisant les fonctions DebugActiveProcess et DebugActiveProcessStop . Lorsqu'un débogueur s'attache à un processus distant, tous les threads de la cible sont immédiatement suspendus jusqu'à ce que le débogueur donne un signe pour les laisser s'exécuter.

Il existe un certain nombre d'outils disponibles, qui peuvent suspendre un processus:

De plus, le moniteur de ressources ( Task ManagerPerformanceOpen Resource Monitor) dans Windows Vista et supérieur peut suspendre / reprendre les processus:

Moniteur de ressources

beatcracker
la source
0

"Mettre en veille prolongée" une application ne serait pas plus rapide que de simplement la fermer et la redémarrer, bien que votre point sur les données de session soit valide. En général, il n'y aurait pas grand-chose, sinon aucun avantage.

CarlF
la source
5
Selon quelle logique dites-vous que l'hibernation ne serait pas plus rapide? Hiberner et restaurer un système d'exploitation est plus rapide qu'un redémarrage.
apoorv020
Pensez à ce qu'est l'hibernation. Il faut copier l'image du programme sur le disque dur, puis la recopier. La fermeture du programme, puis son redémarrage nécessite uniquement sa copie à partir du disque dur. Windows démarre très lentement, pour des raisons que je ne connais pas. Pour d'autres systèmes d'exploitation, par exemple Linux, l'hibernation et l'éveil prennent plus de temps que l'arrêt et le redémarrage, au moins sur tous les systèmes que j'ai essayés. C'est pratique mais pas rapide.
CarlF
Bien démarrer certains programmes prend beaucoup de temps, en particulier Firefox. Sans parler de l'irritation.
apoorv020
3
Closing the program and then restarting it only requires copying it from the hard disk. Vous oubliez d'ajouter le temps qu'il faut pour remettre le programme dans son état d'origine. Par exemple, rouvrir un tas d'onglets de navigateur, ouvrir un fichier dans un éditeur, etc.
Synetech
-2

Étant donné que vous êtes sous Windows, vous pouvez toujours créer deux comptes d'utilisateur et utiliser la fonction de changement de compte rapide dans Windows et utiliser chacun d'eux pour différents ensembles d'applications. Étant donné que Windows hiberne à peu près les autres vues ouvertes sur l'ordinateur. Je le pense.

TripingPC
la source
2
Le basculement entre les comptes d'utilisateurs dans Windows 7 n'hiberne pas ou ne suspend en aucune manière l'activité du compte non actif. Vous pouvez le prouver par vous-même en jouant de l'audio dans un compte, puis en basculant sur l'autre compte et en observant que l'audio continue de jouer.
Je dis Reinstate Monica
Wellllllllll ..... en fait, cela arrête de dessiner l'écran.
djsmiley2k dans l'obscurité