Posso "ibernare" un programma?


17

Sì, so che l'ibernazione si applica di solito a un computer. (Sospendi il suo significato salvando la memoria del programma sul disco e riuscendo a ripristinarla in modo coerente.)

Tuttavia, l'ibernazione di un programma può essere molto utile. Supponiamo di voler giocare, ma alcuni programmi come Firefox, Acrobat occupano 500 M di memoria, quindi voglio liberarlo. La chiusura e l'avvio possono richiedere molto tempo, soprattutto se non è possibile memorizzare i dati della sessione. Quindi invece vado a ibernarli. Quindi c'è un modo in cui posso ibernare un programma?


Quale sistema operativo stai usando?
Ian C.,

1
Windows 7, 64 bit. Ho anche ricodificato la domanda.
apoorv020,

bel miglioramento per un sistema operativo ...
kokbira

2
Correlati (ma nessuna risposta) superuser.com/questions/170434/…
Sathyajith Bhat

Risposte:


8

C'è una domanda correlata al riguardo su StackOverflow. È più legato alla programmazione, ma la principale risposta accettata spiega perché ciò che stai cercando di fare è difficile e offre un'alternativa praticabile.

Fondamentalmente, esegui le tue app "aziendali" in una macchina virtuale e metti in pausa / ibernazione / chiusura quando vuoi giocare.


4

Sebbene questo non sia un vero e proprio letargo , il processo può essere sospeso. Smetterà immediatamente di utilizzare i cicli della CPU, ma continuerà a utilizzare la memoria. Fortunatamente, questa memoria verrà scambiata con il file di paging, se successivamente avvii un'applicazione che richiede molta memoria, quindi non è un vero problema. Il processo sospeso non può sopravvivere al riavvio \ disconnessione, ma sarà sufficiente per giocare.

Domanda correlata: sospendere / riprendere un processo nel modo più semplice?

Internamente, la sospensione del processo potrebbe essere effettuata tramite approcci diversi :

  • Coppia di funzioni SuspendThread e ResumeThread .

  • NtSuspendProcess funzione (non ufficialmente documentata) che è stata introdotta con Windows XP Sp0 e da allora funziona su ogni singola versione del sistema.

  • Interfaccia di debug fornita da Microsoft, utilizzando le funzioni DebugActiveProcess e DebugActiveProcessStop . Quando un debugger si collega a un processo remoto, tutti i thread del target vengono immediatamente sospesi fino a quando il debugger non dà un segno per consentirgli di eseguire.

Sono disponibili numerosi strumenti che possono sospendere un processo:

Inoltre, Resource Monitor ( Task ManagerPerformanceOpen Resource Monitor) in Windows Vista e versioni successive può sospendere / riprendere i processi:

Sorvegliante delle risorse


0

"Sospendere" un'app non sarebbe più veloce della semplice chiusura e riavvio, anche se il tuo punto sui dati della sessione è valido. In generale non ci sarebbero molti vantaggi.


5
Con quale logica dici che il letargo non sarebbe più veloce? L'ibernazione e il ripristino di un sistema operativo sono più veloci di un riavvio.
apoorv020,

Pensa a cosa è il letargo. Richiede la copia dell'immagine del programma sul disco rigido, quindi la copia indietro. Per chiudere il programma e riavviarlo è sufficiente copiarlo dal disco rigido. Windows si avvia molto lentamente, per motivi che non conosco. Per altri sistemi operativi, ad esempio Linux, l'ibernazione e il risveglio richiedono più tempo del semplice spegnimento e riavvio, almeno su tutti i miei sistemi su cui l'ho provato. È conveniente ma non veloce.
CarlF,

Bene, l'avvio di alcuni programmi richiede molto tempo, soprattutto Firefox. Per non parlare anche dell'irritante.
apoorv020,

3
Closing the program and then restarting it only requires copying it from the hard disk. Ti stai dimenticando di aggiungere il tempo necessario per riportare il programma nello stato in cui si trovava. Ad esempio, riaprendo un sacco di schede del browser, aprendo un file in un editor, ecc.
Synetech,

-2

Dato che sei su Windows, puoi sempre creare due account utente e utilizzare la funzione di cambio rapido dell'account in Windows e utilizzarli ciascuno per diversi set di app. Dal momento che Windows praticamente iberna le altre visioni aperte sul computer. Credo di si.


2
Il passaggio da un account utente all'altro in Windows 7 non va in letargo o sospende in altro modo l'attività nell'account non attivo. Puoi dimostrarlo a te stesso riproducendo un po 'di audio in un account, quindi passando all'altro account e osservando che l'audio continua a essere riprodotto.
Dico Reintegrare Monica

Wellllllllll ..... in realtà smette di disegnare lo schermo.
djsmiley2k in darkness,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.