Sean Nelson
Forum Pro
Lockups and crashes are an Excel phenomenon, not necessarily a limitation of running a single instance of a program. Processes can spawn threads to execute tasks in parallel, and programs can be written to delegate crash-prone operations to subtasks which, if they fail, won't take down their siblings. You see this in modern browsers, for example.If you're running multiple Excel windows (files) in a single instance, they share a "computing engine". This is necessary, because Excel files opened in the same instance are treated as one workspace (you can create relations between them). This means that:
- if one window (file) is recalculating, it will halt all windows in this instance,
- if one window crashes during these calculations, it will almost surely take the whole instance with it.
When you run different instances, they are really separate.
And it's a little more subtle than "separate instances are really separate", because program code is read-only and Windows is clever about sharing it between different processes on the system. Two separate processes (what you're calling "instances") with their own virtual address spaces will actually map to the same program code pages. So you really only have one copy of the Excel code in memory, what's unique to each process is the stack, the data, and the CPU register set. So in terms of RAM usage there really isn't all that much difference between one process with multiple spreadsheets open and two separate processes, each with its own spreadsheet open.