Super User is a question and answer site for computer enthusiasts and power users. It's 100% free, no registration required.

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

Below is what I understand, please correct me if i'm wrong about the 3GB part?

  • a win32 application's virtual memory address space is limited by 4GB.

  • Of the 4GB memory address space each process gets, only 2GB is actually available for the program to use; the other 2GB is reserved for use by the kernel.

  • The /3GB boot option can allow some programs to use more memory address space.

If such an win32 application is running on a Win64 OS,

  • does the above 4GB limitation of total virtual memory address space accessible still applies?

  • does the 2GB limitation still applies?

  • is the /3GB option still available?


share|improve this question
up vote 5 down vote accepted

Referring to the table here, we can see that a 32 bit application can have three different virtual memory limitations:

A 32 bit application linked with the /LARGEADDRESSAWARE flag on x64 Windows will get 4GB to itself.

A 32 bit application linked with the /LARGEADDRESSAWARE flag on x86 Windows with the /3GB boot flag will have 3GB to itself.

In all other cases, the 32 bit application will get the default 2GB/2GB app/kernel split..

share|improve this answer

Yes, depends, no.

share|improve this answer
There is no /3GB option on a 64-bit OS, but none is needed. LAA 32-bit applications can always use a full 4GB of virtual memory on 64-bit versions of Windows. – David Schwartz Feb 21 '12 at 7:03
Er, not quite "always". A 32-bit app will have to be linked with /LARGEADDRESSAWARE to use 4GB of virtual memory. Otherwise it is limited to 2GB. – Jamie Hanrahan Aug 8 '14 at 20:32

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.