New
#11
thanks
All 32 bit programs that are Large Address Aware will get 3 GB of virtual memory, otherwise only 2 GB for those that are not. Please watch: https://msmvps.com/blogs/gdicanio/ar...ssinovich.aspx
I think the OP is referring to the fact that 32 bit programs can only address a maximum of 2 or 4Gb. This is the address range of that program. In a 64 bit windows they could be loaded anywhere within windows address range so they each have their own 4Gb maximum.
The Virtual Address Space is 3 GB for each process when using a 32 bit program on a 64 bit edition of Windows. However, it will only see 3 GB if it is Large Address Aware, then it will only see 2 GB for its Virtual Address Space.
A 64 bit program can have an 8 TB Virtual Address Space.
References:
Virtual Address Space (Windows)
Virtual Address Space (Windows)
The Virtual Address Space does not equate to Physical Memory. You can have 3 GB or more on Virtual Address Space while only having 1 GB of Physical Memory.
The link is about 32bit Windows.
Comparison of 32-bit and 64-bit memory architecture for 64-bit editions of Windows XP and Windows Server 2003
"Applications that are compiled with the /LARGEADDRESSAWARE option, as would be required to take advantage of the /3GB switch in 32-bit Windows, will automatically be able to address 4 GB of virtual memory without any boot time switches or changes to x64 Windows. Plus, of course, the operating system does not have to share that 4 GB of space. Therefore, it is not constrained at all."
To clarify, let's say those apps are using 600 MB of memory all together. It isn't going to matter if you have 3 GB or 4 GB, or if the system is running the x86 or x64 platform. If all other variables are the same (meaning processor, hard drive, etc), those apps will run identically.