Take the 2-minute tour ×
Super User is a question and answer site for computer enthusiasts and power users. It's 100% free, no registration required.

I usually work with a lot of instances of visual studio open to different projects, I was wondering if there is a way to snapshot/hibernate a running process to disk instead of closing it so that I can open it in the same state as it was quickly.

I have a ton of free disk space so wouldn't mind saving the entire process snapshot if it would save me the time in opening up the solution and waiting for the projects to load.

share|improve this question
    
+1: Interesting idea! (Of course this is exactly what the virtual memory manager is trying to do for you automatically as and when required.) –  Andy Jun 11 '10 at 15:24
1  
FWIW, something like this ("unexec", based on a core dump) is traditionally part of the build process for Emacs on UNIX systems. See, for example, xemacs.org/Architecting-XEmacs/unexec.html –  coneslayer Jun 11 '10 at 15:31
    
That was specifically designed for emacs no? I wonder if a general purpose version could be written. –  Andy Jun 11 '10 at 15:47
    
I have been searching for something like this for quite some time now. It would especially help if you wanted to pause a video encoder! –  Breakthrough Jun 11 '10 at 17:31
1  
It seems like there is something like this for Linux linux.org/apps/AppId_2488.html However I think the problem is going to be open file handles, network sockets etc., which make this a non-trivial problem –  Sijin Jun 11 '10 at 17:52
add comment

3 Answers

I do this using VirtualBox from Sun for separating projects. It's also handy because you can take snapshots.

The drawback is you need to put an entire OS on there.

share|improve this answer
1  
Yeah - I use VirtualBox for OS level snapshots, that's where i got the idea for an application level snapshot. It seems like there is something like this for Linux linux.org/apps/AppId_2488.html However I think the problem is going to be open file handles and such, which make this a non-trivial problem. –  Sijin Jun 11 '10 at 17:51
add comment

You can use WinDbg (Microsoft tool) to create a dump of the current state of a windows machine. Usually this is used to analyse problems, but maybe it could serve your needs as well. Search for keywords WinDbg and dump for further information, maybe there is even an option to dump only single processes.

share|improve this answer
add comment

ProcessExplorer from MS Sysinternals let you Suspend a process. does this help / do the job ?

share|improve this answer
1  
Unfortunately not... I wanted to take the process out of memory in order to free it up, not simply pause the application. Although this IS a very useful program for CPU intensive applications that you may need to pause! –  Breakthrough Aug 8 '10 at 15:39
    
Suspending a process effectively freezes all other processes that happen to send some windows messages to it. It so happens that some processes do like to send messages to other processes, and some processes like to be targets for such broadcasts. So, suspending some processes is harmless, but for other cases it will interfere Your work with the computer. And one more thing. Some processes, after being resumed from long-lasting suspend, will freeze and take all your CPU to make up for all the lost time computing something very smart :P –  levitation May 17 '13 at 15:51
    
There is also a pssuspend command line utility from MS Sysinternals. You can find it over there: technet.microsoft.com/en-us/sysinternals/bb897540. It is part of a PsTools package: technet.microsoft.com/en-us/sysinternals/bb896649 where You can also find for example a pskill tool, which is for example rather handy after resuming a process and it happens to get way too excited. –  levitation May 17 '13 at 15:54
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.