I've an application, which is compiled in 32-bit because we have some customers still in 32-bit.
We are aware that there is a limitation of 2GB of RAM that we can use.
I've recently been told that we can flag the exe application to increase this space to 3GB, this can be done with the following command on our executable:
Editbin /LARGEADDRESSAWARE (LAA)
I also found some information on the /3GB
that has to be set in the boot.ini file.
My questions are:
- Is this
/3GB
required on 64bits OS? - What can happens if we are on a 32-bit OS, without the
/3GB
switch, with an application with the LAA enabled? We can only use the 2GB? We will have an application crash? - Does this has any impact when being on a 64-bit OS?
It has nothing to do with RAM, a 32-bit process has 2 GB of address space. How you use it is up to your program, a memory-mapped file is a standard technique to get beyond the 2 GB addressing limit.
It is not supported on a 64-bit operating system. It isn't supported on 32-bit operating systems anymore either, modern video adapters gobble up too much address space to leave enough room for the OS.
Nothing happens, you still have 2 GB of address space. If that's not enough to get the job done then you need to strongly consider changing your system requirements. There's little point left in still accommodating customers that are stuck in the previous decade, 64-bit operating systems are the norm today.
Yes, you'll get 4 GB of address space. The OS is no longer in the way.