Joe Galliera

3GB switch question

Blog Post created by Joe Galliera Employee on Oct 8, 2009

Using more memory is definitely an advantage in Simulation. There seems to be a lot of confusion in the industry about what's commonly called the Windows “4GB memory limit.” When talking about performance tuning, people are quick to mention the fact that an application on a 32-bit Windows system can only access 4GB of memory. But what exactly does this mean?

By definition, a 32-bit processor uses 32 bits to refer to the location of each byte of memory. 2^32 = 4.2 billion, which means a memory address that's 32 bits long can only refer to 4.2 billion unique locations (i.e. 4GB).

In the 32-bit Windows world, each application has its own “virtual” 4GB memory space. (This means that each application functions as if it has a flat 4GB of memory, and the system's memory manager keeps track of memory mapping, which applications are using which memory, page file management, and so on.)

This 4GB space is evenly divided into two parts, with 2GB dedicated for kernel usage (i.e. used by Windows OS), and 2GB left for application usage. Each application gets its own 2GB, but all applications have to share the same 2GB kernel space.

To be able to extend this to 3GB for applications, such as SolidWorks Simulation, then here is how you do it:


Enable the 3GB switch on Windows  XP

  • Right-click My Computer. Click Properties.
  • In the System Properties dialog box, click the  Advanced tab.
  • On the Advanced tab, under Startup and Recovery,  click Settings.
  • In the Startup and Recovery dialog box, under  System startup, click Edit. The Windows boot.ini file will be opened in  Microsoft® Notepad.
  • Create a backup copy of the boot.ini file by doing a "Save As..." to a different  location. Note: Boot.ini files may vary from computer to computer. 
    Select the following line in the boot.ini file:

multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Microsoft Windows XP  Professional 3GB" /noexecute=optin /fastdetect

  • Press Ctrl+C to copy the line and then press Ctrl+V  to paste it immediately above the original  line. This will be the default  selection, if you don't want to boot to the 3GB environment by default, then copy it below the original line instead.
    Note: Your text string may be different from the text  string in this solution, so be sure to copy the text string from your boot.ini  file, and not the text string included here.
  • Modify the copied line to  include "3GB" (you can change anything within the quotation  marks to be descriptive), as shown in the following example:

multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="WinXP  Pro 3GB" /noexecute=optin /fastdetect /3GB /userva=2900


Note: Do not overwrite any existing  lines. I set the timeout for my menu to be 8 seconds (instead of 30),  which is plenty enough to make a menu selection during the boot process.  To do this, just change the line to:  timeout=8

  • Save and close the boot.ini file.
  • Click OK to close each dialog box.
  • Restart your computer.
  • During startup, you be presented with a menu to have the option of which environment to boot.

Note: If problems occur during startup, you may need  to update some of your drivers.

Enable the  3GB switch on Windows Vista and Windows 7 (32-bit)

  • Right-click Command Prompt in the Accessories  program group of the Start menu. Click Run as Administrator.
  • At the command prompt, enter "bcdedit /set  IncreaseUserVa 3072"
  • Restart the computer.

Disable the 3GB switch on Windows  Vista and Windows 7 (32-bit)

  • Right-click on Command Prompt in the Accessories  program group of the Start menu. Click Run as Administrator.
  • At the command prompt, enter "bcdedit /deletevalue  IncreaseUserVa"
  • Restart the computer.


For more information on the 3GB switch,  refer to the following Microsoft MSDN article:


More on BCDEdit at: