Czy istnieje sposób na wykonanie migawki działającego procesu na dysk w celu przywrócenia go później?


11

Zwykle pracuję z wieloma instancjami visual studio otwartymi na różne projekty, zastanawiałem się, czy istnieje sposób na wykonanie migawki / hibernacji działającego procesu na dysk zamiast zamykania go, aby móc go otworzyć w tym samym stanie, w jakim był szybko.

Mam mnóstwo wolnego miejsca na dysku, więc nie miałbym nic przeciwko zapisaniu migawki całego procesu, jeśli pozwoliłoby mi to zaoszczędzić czas na otwarciu rozwiązania i czekaniu na załadowanie projektów.


+1: Ciekawy pomysł! (Oczywiście właśnie to menedżer wirtualnej pamięci próbuje zrobić dla ciebie automatycznie, gdy jest to wymagane).
— Andy

2
FWIW, coś takiego („unnexec”, oparty na zrzutu pamięci) jest tradycyjnie częścią procesu kompilacji Emacsa w systemach UNIX. Patrz na przykład xemacs.org/Architecting-XEmacs/unexec.html
— coneslayer

1
Zostało to specjalnie zaprojektowane dla emacsa nie? Zastanawiam się, czy można by napisać wersję ogólnego przeznaczenia.
— Andy

Od dłuższego czasu szukam czegoś takiego. Byłoby to szczególnie pomocne, jeśli chcesz zatrzymać koder wideo!
— Przełom

1
Wygląda na to, że jest coś takiego dla Linuksa linux.org/apps/AppId_2488.html Jednak myślę, że problemem będą otwarte uchwyty plików, gniazda sieciowe itp., Które sprawiają, że jest to nietrywialny problem
— Sijin

Odpowiedzi:


2

Robię to za pomocą VirtualBox firmy Sun do rozdzielania projektów. Jest to również przydatne, ponieważ możesz robić migawki.

Wadą jest to, że musisz tam umieścić cały system operacyjny.


3
Tak - używam migawek na poziomie systemu operacyjnego VirtualBox, stąd wpadłem na pomysł migawki na poziomie aplikacji. Wygląda na to, że jest coś takiego dla Linuksa linux.org/apps/AppId_2488.html Jednak myślę, że problemem będą otwarte uchwyty plików i takie, które sprawiają, że nie jest to trywialny problem.
— Sijin

0

ProcessExplorer od MS Sysinternals pozwala Ci zawiesić proces. czy to pomaga / wykonuje pracę?


5
Niestety nie ... Chciałem usunąć proces z pamięci, aby go zwolnić, a nie po prostu zatrzymać aplikację. Chociaż jest to bardzo przydatny program do aplikacji intensywnie wykorzystujących procesor, które mogą wymagać zatrzymania!
— Przełom

Zawieszenie procesu skutecznie zamraża wszystkie inne procesy, które zdarzają się, wysyłając do niego niektóre komunikaty systemu Windows. Zdarza się, że niektóre procesy lubią wysyłać wiadomości do innych procesów, a niektóre są celami takich transmisji. Tak więc zawieszenie niektórych procesów jest nieszkodliwe, ale w innych przypadkach zakłóci Twoją pracę z komputerem. I jeszcze jedno. Niektóre procesy, po wznowieniu z długotrwałego zawieszenia, zawieszają się i zajmują cały procesor, aby nadrobić stracony czas na obliczeniu czegoś bardzo inteligentnego: P
— Roland Pihlakas

Istnieje również narzędzie wiersza polecenia pssuspend od MS Sysinternals. Można go znaleźć tam: technet.microsoft.com/en-us/sysinternals/bb897540 . Jest to część pakietu PsTools: technet.microsoft.com/en-us/sysinternals/bb896649, w którym można również znaleźć na przykład narzędzie pskill , które jest na przykład dość przydatne po wznowieniu procesu i staje się zbyt podekscytowane .
— Roland Pihlakas

1
@Breakthrough, ale jeśli proces zostanie zawieszony, zrezygnuje z pamięci (ponieważ inne programy wykorzystują pamięć, spowodują, że ten zostanie stronicowany) bez próby odzyskania go, dopóki go nie wznowisz. Jest to naprawdę najbliższy / najbezpieczniejszy sposób, aby uzyskać to, czego chcesz - zamieniony zawieszony program w zasadzie jest bezpiecznie przechowywaną migawką, po prostu utraconą podczas ponownego uruchamiania.
— binki

-1

Możesz użyć WinDbg (narzędzie Microsoft), aby utworzyć zrzut bieżącego stanu komputera z systemem Windows. Zwykle służy to do analizy problemów, ale być może może również służyć twoim potrzebom. Wyszukaj słowa kluczowe WinDbg i zrzuć dodatkowe informacje, być może istnieje nawet opcja zrzucenia tylko pojedynczych procesów.


Plik zrzutu nie może zostać użyty do przywrócenia procesu.
— user2284570,
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.