Super User is a question and answer site for computer enthusiasts and power users. Join them; it only takes a minute:

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?

thanks!

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
1  
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

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .