4 ms·
On 32-bit Windows, sure; because the process has to share its 4GB virtual address space with the system (the system getting the upper 1GB/2GB, depending on if 4
by LukeShu 9y ago
On 32-bit Windows, sure; because the process has to share its 4GB virtual address space with the system (the system getting the upper 1GB/2GB, depending on if 4GT is on). But it is my understanding that on 64-bit Windows, 32-bit processes do not have to share any of their 4GB virtual address space with the system, and can use the entire 4GB.
https://msdn.microsoft.com/en-us/library/aa384271.aspx https://msdn.microsoft.com/en-us/library/aa384271.aspx
https://msdn.microsoft.com/en-us/library/aa366778.aspx https://msdn.microsoft.com/en-us/library/aa366778.aspx
- cpeterso 9y agoThough as noted in your MSDN link, 32-bit Windows application must use the IMAGE_FILE_LARGE_ADDRESS_AWARE linker flag to opt into a full 4GB virtual address space when running on 64-bit Windows OS. 32-bit applications that were only tested on a 32-bit OS might break if they see pointers above 0x80000000 so, in the name of backwards compatibility, Microsoft wisely kept the 2GB default. :)
- user5994461 9y ago>> 2 GB with IMAGE_FILE_LARGE_ADDRESS_AWARE cleared (default) >> 4 GB with IMAGE_FILE_LARGE_ADDRESS_AWARE set While we are at it. The flag is a bit in the header of the .exe file. It should be set at compile time in the visual studio option, but it can be set into any file really with an hex editor. Don't expect to be able to use the 4 GB even with the flag. There is a lower hard cap that depends on the version of windows.
- the8472 9y agowin64 FF has been built with LARGEADDRESSAWARE for the last 7 years. https://bugzilla.mozilla.org/show_bug.cgi?id=556382#c28 https://bugzilla.mozilla.org/show_bug.cgi?id=556382#c28