0

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?
phuclv
  • 37,963
  • 15
  • 156
  • 475
J4N
  • 19,480
  • 39
  • 187
  • 340

1 Answers1

3

is a limitation of 2GB of RAM that we can use

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.

Is this /3GB required on 64bits OS?

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.

What can happens if we are on a 32bits 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.

Does this has any impact when being on a 64OS ?

Yes, you'll get 4 GB of address space. The OS is no longer in the way.

Hans Passant
  • 922,412
  • 146
  • 1,693
  • 2,536
  • First: I totally agree, I would be the happiest men here if we can say that we support only 64bits OS, but unfortunately, not the case. So what is the effect of /largeaddressaware if not supported by 32 bits OS? (Our customer are paying to receive Win xp update from MS, it give you an idea on how it's hard to force them to use everywhere 64bits). I'm not sure to understand the relation between the video adapter and our .net application? – J4N Jul 03 '14 at 11:41
  • Asked and answered, it has no effect whatsoever. – Hans Passant Jul 03 '14 at 11:56
  • Ok, but it has no effect since what? A specific version of windows? If yes, which one? – J4N Jul 03 '14 at 13:25
  • It has no effect because no address can ever be larger than 0x7fffffff. This ought to be a little bit obvious by now. – Hans Passant Jul 03 '14 at 13:55
  • Hum, but if it has been created, it means that it has been used once? So what changed? and where does this 0x7fffff comes from? I would have expected 0xffffff – J4N Jul 03 '14 at 14:27