I've attempted to write this series of posts in a way that will be accessible to everyone. It may seem a little boring and geeky, but you'll be better prepared in making purchasing decisions, or when asking questions or for advice. Also please note that the recommendations given here for specific products are not exclusive - there are too many usage scenarios to cover every option.
RAM / System Memory
The most important thing you need to know about RAM is how much to have in your system.
“Just tell me how much to get!”
8 GB for small to medium size projects with project files up to about 150 MBs... residential projects, small office buildings, a couple buildings linked together, etc. Don't even consider buying a new computer with less than 8 GB (and you'll need more if you're running Revit in a virtual machine).
16 GB is becoming fairly standard as the new sweet spot. While not always needed for smaller projects, it's a good starting point for medium to larger projects - medium to large residential, medium sized to large office buildings, etc.
32 GB is still more than needed for the vast majority of Revit users, but if you're working on large multi-file (linked) buildings, skyscrapers, campus projects, etc., this is a safe bet.
Estimating RAM Requirements
The most common rule of thumb used to calculate the necessary amount of RAM for Revit is to:
Multiply the Revit project file size by 20 and add 4 GB.
For example, if you have a 200 MB project file, you'd require 8 GB of RAM for Revit (200 MB x 20 + 4 GB).
However, that's really just a rule of thumb, and kind of outdated in my experience. You can actually observe RAM usage using the Windows Task Manager (much more on that below).
Selecting the Type of RAM for Your System
If you're purchasing a computer from an OEM (e.g. Dell), it should come preconfigured with the correct type of RAM. If you're adding third-party RAM to a computer yourself, you'll need to dive into some of the tech details a bit more.
Here are some basics that you need to know:
DDR2, DDR3, etc., are types of RAM and 1333MHz, 1600MHz, 1866MHz, etc. are speeds of RAM. The speed of RAM you should get is generally dependent on the CPU you get... while faster is better, it doesn't have a huge impact on performance, so select the CPU you want, and the RAM will follow. If you're putting together a new system, don't select the CPU based on the available speed of RAM - buy the correct speed of RAM based on the CPU that you've selected. Get the maximum speed officially supported by the CPU. There is little reason to get RAM that is faster than what the CPU supports (unless you're a serious overclocker). Also, if you're adding RAM to a system, it is best to match the same speed as what's already in the system.
Dual Channel/Triple Channel/Quad Channel architecture is the RAM's data throughput, but as far as the end user is concerned, it's primarily about how the RAM modules are configured in the system. The most important thing to know is that RAM modules should be installed in pairs with Dual Channel, and in triplets with Triple Channel (for best performance), and two pairs for Quad Channel (for best performance). However, systems with Triple Channel and Quad Channel also support Dual Channel, so you can stick with Dual Channel if that works out to the best memory configuration for your needs.
(tip: I've done some informal benchmarks performed on a system that supports both Dual and Triple Channel and the results were virtually identical. And most benchmarks I've seen show that adding faster RAM than the CPU is designed for has a negligible affect on "real world" performance).
RAM sizes these days are typically 2GB, 4GB or 8GB for each RAM modules. When adding RAM to a system, it's best to match the same size in pairs for Dual Channel, triplets for Triple Channel, etc. For example, if you wanted to add 8GB to your system, you'd purchase two 4GB RAM modules (2 x 4GB = 8GB). RAM is often sold as "kits" of two modules (sometimes three modules for Triple Channel systems).
"How do I get more RAM?"
The most straightforward way to get more RAM is through the OEM you purchased the computer from. However, they often mark up the price of RAM significantly, sometimes at double the price you can get virtually the same RAM through a third-party retail channel. It's even very common when purchasing a computer to order it with the least amount of RAM possible, and then upgrade it yourself. Third-party RAM is available through retail channels like Newegg, Amazon, computer retail stores, as well as directly from the memory provider websites.
(tip: One of the major RAM brands, Crucial (www.crucial.com), has a "Memory Advisor Tool" that will assist you in selecting RAM modules that are compatible with your system).
However, it's important to note that some computers, particularly some ultra-portable laptops, come pre-configured with RAM that is non-upgradeable or very difficult to upgrade. If this is the case, you need to determine what amount of RAM you'll need not only presently, but as long as you plan on using the computer.
"What brands of RAM are recommended?"
Like most brands, everyone has their favorites. My best advice is to stick with well-known quality brands - don't just purchase the cheapest RAM you can find. If you don't know the first thing about RAM and just want a relatively easy way to upgrade, start with Crucial because their RAM selector makes it super easy to get the right RAM for your system, and they have good customer service.
A few good brands are Crucial, Kingston, G.Skill, and Corsair. There are of course many other good brands, but those are a good place to start.
"Does adding more RAM make my computer faster?"
It's really all in the wording. Having enough RAM keeps your computer from slowing way down. You never want to have too little RAM, and having more than enough never hurts. However, since most of us have to stay within a budget, you don't want to waste money on unnecessary RAM that you could put to better use elsewhere, such as a faster CPU, which will make your computer faster. To use a automobile analogy, adding more fuel won't make your car go faster, but you need to have enough to get where you're going.
"What about virtual memory and the Pagefile - what should I set those to?"
I recommend letting Windows manage those automatically. If you're really interested, much more on that toward the end of this post.
"What about the /3GB Switch?"
If you have a 64-bit version of Windows, the /3GB Switch is not applicable. If you’re still using 32-bit, and you want to change the /3GB Switch settings, don’t waste your time – get a new computer with Windows 64-bit.
Get at least 8 GB of RAM as a minimum, 16 GB is probably a better place to start with a new computer, but ultimately, you're going to need as much RAM as Revit requires for the projects you work on. Read on...
Windows Task Manager Explained
How do you determine how much memory you actually need? If you already have a computer with Revit, it's actually pretty easy using a built-in Windows utility called the Windows Task Manager (WTM). The most universal way to access the Windows Task Manager is by pressing the Control-Alt-Delete key combination which will bring up a list of choices, from which you can select the WTM.
(tip: for those using a Virtual Machine, e.g. Parallels, or RDP: you can usually send the Control-Alt-Delete command using the application menu).
Note that different versions of Windows have slightly different versions of WTM. The attached screenshots are from Windows 7. Also note that there are other similar utilities available, including Resource Monitor (which is accessible from within WTM), and Process Explorer, which is a free utility available from the Microsoft website. They use similar though slightly different terminology for some of these concepts.
Here's the basics: Assuming you already have a computer running Revit with your largest project file open: Work on the same file for an extended period of time (at least several hours). Open the Windows Task Manager. You can actually view under the "Processes" tab how much memory Revit is using at any given time. You can look under the "Performance" tab to see how much memory your computer is using at any given time. As long as the amount of memory your computer is using is never more than the amount of RAM installed in your computer, you're doing okay.
Open up WTM and look for the following (I've attached some images of the WTM in action).
Physical Memory (MB) is broken down as follows:
Total: the total amount of physical RAM chip memory accessible by Windows.
Cached: is roughly Available (physical) memory minus Free (physical) memory (more on both of those below). Windows will cache data in RAM... if the data is needed again - it's available in the cache... if the memory space the cache is occupying is needed, then data is flushed from the cache to make room for new data. Essentially, you can ignore this number.
Available: The amount of memory available to applications that isn't already being used. This is the most important number to look at when determining whether the system is running low on physical RAM. If this number regularly gets below 1 GB, it's time to look at getting more RAM.
Free: The amount of memory that contains no data what so ever. The number is rather meaningless to the end user and highlights one of the most common misunderstandings of memory usage, and why so many users think they need more memory than is actually necessary. It doesn't take much time for this number to reach 0 (or close to it), even if there's lots of Available memory available. However, even if reaches 0, it doesn't hurt system performance. As long as the system isn't running low on Available memory, it can always flush Cached memory to make more memory available to applications requesting it. Essentially, you can ignore this number.
The other numbers that may be of interest, particularly if you are running out of physical RAM, are located under the System section in the Commit (GB) (or MB) and is broken down as follows:
The first number is the current Commit Charge - the total virtual memory in use - the sum of physical RAM plus any virtual memory currently stored in the Pagefile.
The second number is the Commit Limit - the sum of the physical system RAM plus the Pagefile size, i.e. the total amount of virtual memory that is available for use by the system.
If the Commit Charge exceeds the Commit Limit, the program and/or Windows may crash (Windows is fairly good in out of memory situations - you're most likely to get a warning message before Revit would literally hard crash). You'll likely notice something is up beforehand as the computer will virtually grind to a halt as large chunks of memory are swapped in and out of physical memory to the storage drive.
Virtual Memory vs. Virtual Memory
One point that can be cause for a lot of confusion requires a little more technical background information (which you're welcome to skip over if you're not interested).
All programs and data is mapped to virtual address space through Windows memory management. Applications do not address memory directly. Thus, it can be said that all applications and data are stored in virtual memory. However, this is a different use of the term than when applied to data stored outside of physical memory (i.e. a hard drive) in a pagefile, which is also often referred to as virtual memory.
Also keep in mind that applications often use a reservation of memory address space to create a large block of virtual memory and then commit it as needed to ensure that the committed memory is contiguous in the address space. This is essentially a virtual memory placeholder, and can make an application appear to be using more memory than it actual needs.
The Windows Pagefile (pagefile.sys)
There's a lot of advice on the internet about managing the Pagefile, and a lot of it is simply wrong, outdated, or not relevant to typical users. What the vast majority of users need to know is that, generally speaking, you should almost always leave the page file and memory management up to the Windows default settings... simply put, because there's no reason to mess with the Pagefile when RAM and drive space is typically very plentiful (and affordable if you need more).
The main point of the Pagefile is if the system runs out of physical RAM, it can swap data in memory to a physical storage drive (e.g. SSD or hard disk). However, running out of memory using an application like Revit will result in such terrible performance degradation, that the only practical course of action is to add additional physical RAM to the system. So on a typical Revit workstation, the Pagefile is in practice only acting as a safety net if the system runs out of physical RAM. If you never run out of available physical RAM, a large Pagefile is really not doing anything of practical use.
Generally speaking, on a modern system, there is no usage scenario where you would actually set the Pagefile to a size larger than physical RAM. Any such advice you might see around the internet is way outdated for normal use. In fact, the more RAM the system has, the smaller the Pagefile relative to system memory that would be necessary... i.e. you're much more likely to run out of RAM if your system only has 4GB, and much less likely to run out of RAM if your system has 16GB.
If you need to free up a few GBs of drive space, then you can lower the Pagefile size - by how much depends on how much physical RAM is typically used (and by typical, I mean worst-case scenario 99.5% of the time), but I wouldn't go less than ~1GB (Windows seems to like having a Pagefile regardless of how much system RAM there is, which is why I recommend keeping one despite claims by some users that they never have any issues by setting it to zero). While it's technically feasible to move the Pagefile to a different drive, I would not recommend that - it's an additional complication that will not improve performance.
I've been a computer enthusiast for over twenty years. I know a lot, but I don't know everything. Drop me a PM with suggestions, or if you spot any errors, or think something needs further clarification, or feel free to take it up with me in the forums. And please *post* those questions, requests for advice, and solutions!