Adobe Creative Cloud

Digital Video & Audio

December 22, 2009 /Region of Interest /

Performance tip: Don’t starve your software of RAM.

I find myself giving the same advice over and over on various forums, so I thought that I should say it here, too.

Give your software enough RAM to work.

This means making sure that you’ve allocated enough RAM for each process when using Render Multiple Frames Simultaneously multiprocessing, and it also means setting RAM To Leave For Other Applications to at least 1/4 of installed RAM (preferably more like 1/3).

If you don’t set your Minimum Allocation Per CPU high enough, or if you don’t set RAM To Leave For Other Applications high enough, then you are going to experience the inevitable problems of multiple components both within and outside of After Effects fighting over memory, which slows things down. One of the things that can really kill your performance is essentially telling After Effects to fire up all eight cores in an eight-core machine and then starving those cores of RAM—which is what happens if you set your allocations too low and don’t have much RAM. And if you make the operating system swap RAM to the hard disk because you haven’t given enough RAM for other applications, then you’ve really thrown some serious speedbumps in the way.

It seems that a lot of people have machines with eight processor cores and far too little RAM to feed all of those cores. It is far better to leave some of those processors idle than to try to make them run and then have them shut down because they don’t each have enough RAM to render a frame.

Let’s take an example of a computer with eight processor cores and 24GB of RAM:

For HD, you want at least 2GB for each process; preferably 3GB. And you almost always want to leave at least 2GB for other applications (preferably more, around 1/3 of installed RAM). That leads to some relatively simple math. For an eight-core system with 24GB of RAM, leaving 8GB for other applications gets you down to 16GB. The foreground process takes 1.2 times the RAM allocated for background process, so that is 3.6GB in this case, leaving 12.4GB of RAM. That’s enough RAM for four background rendering processes at 3GB each.

(For RAM previews, there’s the extra detail that the foreground process has a RAM cache that it uses to hold rendered frames. In After Effects CS4, you can give more or less RAM to this cache with the Longer RAM Previews / Faster Rendering slider. If you drag that toward Longer RAM Previews, then you take RAM away from the background processes that do the rendering. In After Effects CS5, this is handled automatically.)

To get the most from After Effects CS4 out of your computer with eight processor cores and a 64-bit operating system, you would have 32GB of RAM. (For After Effects CS5, you can go higher.) If you don’t have that much RAM, then do yourself a favor and set the preferences that I’ve mentioned in this post so that you’re optimally using what you do have, rather than forcing your operating system and applications to fight over scarce resources and thus bog things down.

Here’s another tip: In some cases, performance is improved by using fewer than the maximum number of processors for Render Multiple Frames Simultaneously multiprocessing, even when you have enough RAM for all of the processors. See “Performance tip: Don’t overschedule your processors.”

Also, check out “Improve performance” for some additional tips on improving performance.

Of course, all of the numbers that I give here are just intended as a starting point. Every composition is different, and every computer system is different. The reason that there are Memory & Multiprocessing preferences is so that you can set things as appropriate for your work.

UPDATE: Here’s an updated page in which we recommend some memory settings for After Effects CS5 and ask for feedback:
“Please try recommended memory settings for After Effects CS5 and give feedback.”

Region of Interest