Why Do I Get Out-of-Memory Errors


Virtual memory refers to the ability of your computer to use your hard drive as if it were the random access memory (RAM) of your computer. This ability is present on all operating systems. Thus, if you have a lot of hard drive space, it might appear that memory is almost unlimited. So why do you get still unpredictable out of memory (OOM) errors?

One cause of OOM errors is that your system has run out of space to hold all of your variables. This means that there is no unallocated virtual address space enough on your computer for programs used by e.g. FSX or P3D and therefore no new variables can be created.

Secondly OOM errors are caused by memory fragmentation. This means that there is memory available, but there is no contiguous piece of memory that is large enough to hold specified variables. When virtual memory is used and freed during normal operation of programs, memory becomes fragmented. This means that the amount of total free memory is greater than or equal to the amount of contiguous free memory. Since variables must be stored in a contiguous block of virtual memory, the largest space, which can be created at a any point in time, is limited by the amount of contiguous free virtual address space.

32-Bit Architecture
For PC’s with 32-bit architectures, the size of a processor instruction (a pointer) can be max. 32 bits long. This limitation implies that the memory addresses can be a maximum of 32 bits long, which results in a maximum of 2^32 possible memory addresses. This translates into 4 gigabytes (GB) of addressable memory. Therefore in a 32-bit architecture, the seemingly unlimited virtual memory space is actually limited to approximately 4 GB. The Windows 32-bit operating system reduces the theoretical limit down to 2 GB of virtual memory due to a design decision to reserve the upper 2 GB of address space. On some versions of Windows, this limit can be moved to allow for an extra 1 GB of memory using the /3GB switch.

64-Bit Architecture
If you are using a 64-bit operating system in conjunction with a 64-bit version of a program, (and FSX nor P3D is not) it is in theory possible to access about 2^64 bytes of memory. This means that the amount of memory that is available to programs, will be limited by the amount of memory available on the computer. As this is typically related to the amount of available virtual memory or page file size, you may want to read here how to manage the virtual memory size.

How to configure the pagefile.

For Windows 7/8

  • Right-click on Computer
  • Select Properties.
  • Select the Advanced System Settings
  • Click on the Advanced tab and then Settings under Performance.
  • In Performance Options click on the Advanced tab
  • and then click on Change under Virtual Memory.

Under Automatically Manage Paging File Size, click on Custom Size to enter the amount of swap space in MB and follow the recommendations in this screen.

Better is to set the checkbox @ Automatically manage paging file size for all drives