Nerdism at its best

August 8, 2014

How much is too much memory?

rams

TL;DR you can never have too much memory unless you have a 32bit OS then you are limited to 3.5 GB of memory

Memory is a very important part of a PC. the best way to describe RAM I have found is using a table and open books where the open books represent programs. The amount of RAM you have is the size of said table. The larger the table the more books you can have open at one time. The more RAM you have the more programs you can have running. The only time you would ever be limited is if your are running a 32 bit OS, because you can not use more than 3.5 GB of ram with a 32bit OS. with a 64 bit OS you can use a lot more. Theoretically 16 exabytes or 17.2 billion gigabytes is the limit. however the operating system(in this case windows) will limit your amount of RAM as follows.

  • Windows 8 Enterprise 512 GB
  • Windows 8 Professional 512 GB
  • Windows 8 128 GB
  • Windows 7 Ultimate 192 GB
  • Windows 7 Enterprise 192 GB
  • Windows 7 Professional 192 GB
  • Windows 7 Home Premium 16 GB
  • Windows 7 Home Basic 8 GB

Suppose you have a computer with 16 GB of memory. If the computer is usually using about 4 GB of memory and never reaches 8 GB. You may end up asking would the computer run as equally fast by removing half of the 16 GB and working with only 8 GB or memory.

The quick and dirty answer is no, because the operating system can use the extra RAM as disk cache, which speeds up access to data on the disk. Extra RAM will not make CPU-bound computations (not involving much disk I/O) faster though.

The more precise answer is as follows:

Below is an example from a computer with 24 GB of RAM. Even though only 7 GB is currently allocated as “In Use” memory, another 10 GB is allocated as “Standby” memory and contains data that may or may not be read again. If it is read, it will make your computer faster. The “Free” memory is not being utilized whatsoever at the moment.

Hardware Reserved

Beginning on the left, in gray, is the Hardware Reserved list, which shows the amount of memory reserved for hardware. This list represents the amount of memory that the various hardware devices installed in your system have reserved so that they can communicate with the operating system. Of course, memory reserved for hardware is essentially locked and as such is not available to the memory manager.

Typically, the amount of Hardware Reserved memory ranges from 10MB to 70MB but can vary depending on the system’s hardware configuration and might be several hundred MB. Examples of components that can affect the amount of memory reserved include:

  • System BIOS
  • Motherboard resources, such as I/O advanced programmable interrupt controller (APIC)
  • Sound cards or any other devices that require memory-mapped I/O
  • PCI Express (PCIe) bus
  • Video card
  • Various chipsets
  • Flash devices

In Use

The In Use list, shown in green in Figure C, represents the amount of memory being used by the operating system, drivers, and the various running processes. In Use memory is calculated by adding the sizes of the Modified, Standby, and Free values and subtracting this from the amount of recognized memory, which is listed as Total in the section just below the graph. The Total memory is calculated by subtracting any Hardware Reserved memory from the Installed RAM.

Modified

Shown in orange, the Modified list represents the pages of memory that contain data that has been modified but not been accessed for a while. As such it is not technically in use but can still be pulled into service quickly if needed. If memory in the Modified list has not been accessed in a long time, the memory manager will write the page to disk and then move it to the Standby list.

Standby

The Standby list, which is shown in blue, contains pages that have been removed from process working sets but are still linked to their respective working sets. As such, Standby list is essentially a cache. However, memory pages in the Standby list are prioritized in a range of 0-7, with 7 being the highest. Essentially, a page related to a high-priority process will receive a high-priority level in the Standby list.

For example, processes that are Shareable will be a high priority and pages associated with these Shareable processes will have the highest priority in the Standby list.

Now, if a process needs a page that is associated with the process and that page is now in the Standby list, the memory manager immediately returns the page to that process’ working set. However, all pages on the Standby list are available for memory allocation requests from any process. When a process requests additional memory and there is not enough memory in the Free list, the memory manager checks the page’s priority and will take a page with a low priority from the Standby list, initialize it, and allocate it to that process.

Free

The Free list, shown in light blue, contains pages of memory that have not yet been allocated to a process or were previously allocated but returned to the memory manager when the process ended. (While “not yet been allocated” and “previously allocated” memory both show in the Free part of this bar graph, the “not yet been allocated” pages are actually part of another list called the Zero Page list. These are so-called because they have been initialized to zero and are ready for use when the memory manager needs a new page.)

Leave a Reply

Your email address will not be published. Required fields are marked *