Tak, wiem, że hibernacja zwykle dotyczy komputera. (Hibernuj, co oznacza oszczędzanie pamięci programu na dysku i możliwość przywracania jej w spójny sposób).
Jednak hibernacja programu może być bardzo przydatna. Załóżmy, że chcę zagrać w grę, ale kilka programów, takich jak Firefox, Acrobat, zajmuje 500 mln pamięci, więc chcę ją zwolnić. Zamykanie, a następnie uruchamianie może być czasochłonne, zwłaszcza jeśli nie można zapisać danych sesji. Zamiast tego idę i hibernuję je. Czy jest więc jakiś sposób na hibernację programu?
windows-7
performance
hibernate
apoorv020
źródło
źródło
Odpowiedzi:
W StackOverflow istnieje podobne pytanie na ten temat. Jest to bardziej związane z programowaniem, ale główna zaakceptowana odpowiedź wyjaśnia, dlaczego to, co próbujesz zrobić, jest trudna i oferuje realną alternatywę.
Zasadniczo uruchom aplikacje biznesowe na maszynie wirtualnej i wstrzymaj / hibernuj / zamknij, gdy chcesz grać.
źródło
Chociaż nie jest to rzeczywista hibernacja , proces można zawiesić. Natychmiast przestanie używać cykli procesora, ale nadal będzie używać pamięci. Na szczęście ta pamięć zostanie zamieniona na plik stronicowania, jeśli później uruchomisz aplikację wymagającą dużej ilości pamięci, więc nie jest to prawdziwy problem. Proces zawieszony nie może przetrwać ponownego uruchomienia \ wylogowania, ale to wystarczy, aby zagrać w grę.
Powiązane pytanie: Zawiesić / wznowić proces w prosty sposób?
Wewnętrznie zawieszanie procesów można wykonać za pomocą różnych metod :
Para funkcji SuspendThread i ResumeThread .
NtSuspendProcess
funkcja (nieoficjalnie udokumentowana), która została wprowadzona w systemie Windows XP Sp0 i od tego czasu działa na każdej wersji systemu.Interfejs debugowania udostępniany przez Microsoft przy użyciu funkcji DebugActiveProcess i DebugActiveProcessStop . Kiedy debugger przyłącza się do procesu zdalnego, wszystkie wątki celu są natychmiast zawieszane, dopóki debuger nie da znaku, aby umożliwić ich wykonanie.
Dostępnych jest wiele narzędzi, które mogą zawiesić procesy:
Ponadto Monitor zasobów ( Task Manager→ Performance→ Open Resource Monitor) w systemie Windows Vista i nowszych może zawiesić \ wznowić procesy:
źródło
„Hibernacja” aplikacji nie byłaby szybsza niż samo jej zamknięcie i ponowne uruchomienie, chociaż twój punkt widzenia na temat danych sesji jest prawidłowy. Ogólnie rzecz biorąc, nie byłoby wiele korzyści.
źródło
Closing the program and then restarting it only requires copying it from the hard disk.
Zapominasz dodać czasu potrzebnego do przywrócenia programu do stanu, w którym był. Na przykład, ponowne otwarcie kilku kart przeglądarki, otwarcie pliku w edytorze itp.Ponieważ korzystasz z systemu Windows, zawsze możesz utworzyć dwa konta użytkownika i użyć funkcji szybkiego przełączania kont w systemie Windows i użyć każdego z nich do różnych zestawów aplikacji. Ponieważ Windows prawie hibernuje, inne secesje zostały otwarte na komputerze. Chyba tak.
źródło