Hi friends
What is the maximum amount of memory any single process on Windows can address? Is this different than the maximum virtual memory for the system? How would this affect a system design?
Loading
Know the answer? Post it — somebody with the same question will find it here.
Sign in to answer this question
It is the same account you read, post and publish with — and you will come straight back to this page.
Sam HobbsPosted Nov 27, 2011, 2:18 AM
Note that address space size is limited to the maximum value that an address can express. A 32-bit value can address up to 4 GB. Windows 32-bit reserves 2 GB (1 GB with the 4-Gigabyte Tuning option) for Windows so that leaves 2 GB (or 3 GB) for applications. That value applies to both real memory and virtual memory; in other words, an operating system cannot use any memory beyond what the processor can address.
So try this. Use a calculator or a C# program to calculate 2 to the power of 32; you should get 4,294,967,296 which is 4 GB. Next calculate 2 to the power of 64. You will get a really big number. That number is about how much a Windows 64-bit application can address (use). If you were to use that much virtual memory then you would need at least 3 hard drives just for the page file.
My article An Introduction to Virtual Memory in Windows might help also.
Jean PaulPosted Nov 27, 2011, 12:44 AM
Depending on the available memory of system application can request more.
If there is less memory available the .Net runtime do the Garbage collection process to free up memory used by obsolete objects.
The system design could be done better by reusing class instances (especially resource centric classes), you can use Singleton, Multiton, Dependency Injection mechanisms for it.