- Sep 23, 2008
The old adage that you can never be too thin, too rich, or have too much RAM holds true for Photoshop CS4, just as it did for previous versions. Just how much RAM you need depends on your typical file sizes and work habits. We don't recommend even trying to run Photoshop on a system with less than 1GB of RAM—and more, much more is better. The absolute minimum amount of RAM for Photoshop CS4, according to Adobe, is 512MB. That may be doable...but it'll feel like mopping a floor with a toothbrush. For editing digital camera photos, think of 2GB of installed RAM as a baseline, 4GB as a workable amount, and much more than 4GB if you want to edit very large files or take advantage of 64-bit Photoshop.
We used to have various rules about how much RAM is enough, but as Photoshop has added more features that use scratch-disk space, the old rules have largely gone out the window. The key idea is that Photoshop uses RAM as a cache for its scratch disk: If what it needs at any given moment is in its RAM cache, it can fetch it quicker. But unless you work only on small, flat files, at some point Photoshop will call on its scratch disk. Generally, the more megapixels, layers, Smart Objects, and Smart Filters you use, the more RAM you'll need.
Photoshop can use as much as 2GB of RAM when running on a 32-bit system. However, if you have 2GB of RAM installed, you won't want Photoshop to use all of it. Otherwise, you won't have any RAM left for the system, causing it to use the virtual memory on disk, which is much slower. For this reason, you can use the Performance pane in the Preferences dialog box to set an upper limit on how much RAM Photoshop is allowed to use (see the later section "RAM Allocation").
When running on 64-bit hardware with a 32-bit operating system, in theory Photoshop CS4 can use up to 3.5GB of RAM directly (in practice, it uses 3072MB directly). If you're working on huge images, you may see benefits from even more RAM. When more than 4GB of RAM is installed, Photoshop lets the operating system buffer scratch data into RAM instead of writing it directly to disk. (We talked about 64-bit operating systems in the earlier section "64-Bit Processing.")
Photoshop normally doesn't use those buffers because doing so can be slower than using a scratch file on disk; the way operating systems use virtual memory is not optimal for the way Photoshop needs to use virtual memory. But if you have enough RAM to hold most or all of your scratch data, it becomes faster to let Windows or Mac OS X use extra RAM above 4GB as a cache for scratch data. As you add RAM to your computer, you should see corresponding improvements in performance up to about 8GB, which is the point of diminishing returns. You have to be working with files large enough to make good use of all that RAM—if you're editing 300 × 200-pixel web images with no layers, adding another 4GB of RAM won't make Photoshop run any faster.
A reliable way to determine whether you'll benefit from more RAM is to keep an eye on the Efficiency indicator while you work. To turn on the Efficiency indicator, click the third option from the left (the black triangle) in the status bar at the bottom of a document window and choose Show > Efficiency (see Figure 1). If the Efficiency reading drops below 100%, more RAM would help. (If you've already maxed out your machine with as much RAM as Photoshop can address, and your efficiency is still below 100%, see the later section "Scratch Disk Space" for help.) If the Efficiency display always says 100%, you won't get any benefit from adding more RAM, but if you want to allocate 100% of the available RAM to Photoshop, it's best to install more than 5GB of RAM.
Both Mac OS X and Windows XP automatically adjust the amount of RAM each application gets. Photoshop takes a certain amount of RAM when you start it, and if it needs more, the system hands it over. However, you don't want Photoshop to use all the RAM on your system—that starves the operating system of the RAM it needs to run the machine, causing everything to slow down. Out of desperation, the system will start using virtual memory on disk.
In Mac OS X, use the Performance pane in the Preferences dialog box to set an upper limit on how much RAM Photoshop uses (see Figure 2). The Performance pane suggests an ideal range of RAM for you to let Photoshop use. It also defaults to an amount of RAM that's a good starting point for most users under most conditions. If you have a large amount of RAM (3GB or more), you can try increasing that percentage, but if you go too far, you'll hear the hard disk start to thrash whenever the operating system or another application needs to grab some RAM.
Mac OS X actually gives you an extra clue: When an application is waiting for the computer, you see the all-too-familiar spinning wristwatch cursor, but when the operating system is causing the delay, you see a spinning multicolored wheel, sometimes called the "spinning beach ball." If you see the wheel in Mac OS X, or you hear the hard disk thrashing on either platform when you're working on an image that should fit into RAM, you may need to lower the memory allocation a little.
You can fine-tune your settings based on your own system, the amount of installed RAM, and the way you use Photoshop. Depending on the number of system processes and applications you typically run, you can try increasing the RAM allocation incrementally while checking the available unused RAM with a system utility. On the Mac, you can use Activity Monitor (built into OS X) to watch RAM usage. On Windows, you can watch Performance Monitor, which is also built in.
A few Photoshop filters (Lens Flare, for instance) require that you have enough physical RAM to load the entire image into memory. Even though Photoshop has a virtual-memory scheme, if you don't have enough actual RAM to process the whole image, these effects just won't work.
Virtual Memory Buffering Plug-Ins in Mac OS X
Mac OS X lets Photoshop use your extra RAM as a fast cache if you have more than 4GB of RAM installed, but there's a catch. In Mac OS X 10.3 or 10.4, the caching behavior may cause Photoshop to pause for a few seconds, which can mess you up if you're painting, for example. For this reason, Adobe provides two plug-ins, ForceVMBuffering.plugin and DisableVMBuffering.plugin, that let you control whether OS X uses high RAM for direct caching. How do you decide which one to use? It comes down to whether you're more interested in responsive painting or quickly handling very large files. Use the following guidelines:
- If you have more than 4GB of RAM and you use the ForceVMBuffering plug-in, Photoshop will be as fast as it can be with very large files, but you may experience pauses when painting.
- If you have more than 4GB of RAM and you use the DisableVMBuffering plug-in, you shouldn't experience pauses when painting, but you won't see optimal Photoshop performance with very large files.
- If you have 4GB of RAM or less installed, don't bother installing either plug-in, because you won't have the amount of RAM that brings the extra Mac OS X caching into play.
Here's the last gotcha: The two plug-ins were supposed to be included in the Goodies\Optional Plug-Ins\Optional Extensions folder on the Adobe Photoshop CS3 installation disk, but were left out accidentally. If they aren't on your installation disk, download them from the Adobe website. Look for "Adobe Photoshop CS3 VM Buffering Optional Extensions." Installation instructions are in the ReadMe document. (For Photoshop CS4, the installation disk and download details may be different, but the product had not yet shipped at the time we wrote this article.)
The Cache Levels setting in the Performance pane of the Preferences dialog box (see Figure 3) also has an impact on RAM usage. Increasing the image cache value speeds screen redrawing when you're working with larger files that contain a lot of layers. However, the image cache doesn't do much for small files. The default setting is six levels. If you routinely work with larger, multilayered files, try increasing the cache level to eight. If you work with smaller files, try reducing it.
Virtual memory is a programming trick that fools the computer into thinking it has more RAM than it really does. It works by reserving a specially marked amount of space on your hard drive that gets treated as RAM. The real, physical RAM is then used as a cache for the virtual memory stored on the disk. If the data that your computer needs is cached in RAM, the computer won't slow down; if the computer has to go searching on the hard disk instead, though, things can slow down a lot.
Operating systems create one or more virtual memory swap files on your hard disk that serve as virtual memory to let multiple applications grab RAM as needed. On top of this arrangement, Photoshop uses its own virtual memory scheme to let you do things that wouldn't fit in physical RAM, such as storing 1,000 history states for a 300MB image (which we don't actually recommend doing). To get optimal performance, you need to configure both the operating system's virtual memory scheme and the Photoshop scratch disk space so they play nicely together.
Scratch Files and Swap Files
Both Windows and Mac OS X use the startup disk for the swap file unless you specify otherwise. On Windows XP, you can change the swap file setting by bringing up Properties for My Computer, selecting the Performance tab, clicking the Virtual Memory button, and selecting the Change option. This action lets you specify maximum and minimum swap-file sizes and which drive gets used. On Windows Vista, it's under the Advanced tab.
In Mac OS X, the procedure for pointing the swap file at a drive other than the startup disk is much more complex—it's much easier to change the Photoshop scratch disk setting instead (see the later section "Scratch Disk Space").
Photoshop performs much better if you assign the Photoshop scratch disk to a different physical mechanism than the operating system swap file uses, so a second hard drive is always desirable. This way, the same set of read/write heads doesn't scurry around like gerbils on espresso while trying to serve the dual demands of the operating system swap file and the Photoshop scratch space. If all you have is a single hard disk, however, Photoshop and the operating system will have to fight it out. You can minimize conflicts by being careful with your Memory Usage preference setting.
Setting Up Photoshop Scratch Disks
To tell Photoshop where to store its scratch data, open the Preferences dialog box. In the Scratch Disks options, check the Active? checkbox for any volumes that you want to use for that purpose (see Figure 4). Photoshop starts with the volume at the top of the list. If the scratch data uses up the first scratch disk, Photoshop extends it into the checked scratch disks from top to bottom. To move a disk up or down in the list, click the disk to highlight it, and then click the arrows to the right of the list's scrollbar.
If you store the Photoshop scratch file on a disk where you want to store other files, it's best for the Photoshop scratch file to be in its own partition that contains no other files and doesn't contain the operating system swap file. If the Photoshop scratch file is mixed with other files, that volume may become fragmented and slow Photoshop. A dedicated partition is much easier to maintain. If you need to defragment it, simply reinitialize the partition (erasing everything inside the partition)—you don't need to run a fancy disk optimizer.
Scratch Disk Space
The space you set aside for a scratch disk should at least equal the amount of RAM you've allocated to Photoshop, as it uses RAM as a cache for the scratch disk space. If you've given Photoshop 120MB of RAM, you must also have 120MB of free disk space. If you have less, Photoshop will use only an amount of RAM equivalent to the free space on the scratch disk. In practice, you'll likely need more—if you work with layered, high-bit files or many history states, much more. A good scratch disk is large (many gigabytes) and fast.
Photoshop constantly optimizes the scratch space. If you've considered constant disk access (often called disk thrashing) to be a warning that things are about to get very slow, you should learn to accept it as normal Photoshop behavior. People often are especially concerned when they see disk access immediately after opening a file. This is normal: Photoshop is simply setting itself up to be more efficient down the line. Photoshop has a couple of ways to tell you how much of the scratch disk is involved.
In the lower-left corner of the document window is a pop-up menu that shows (among other things) document size, scratch size, and efficiency (see Figure 5). If you set this indicator to display scratch sizes, the first number shows the amount of RAM being used by all open documents, and the second number shows the amount of RAM currently allocated to Photoshop. If the first number is larger than the second, Photoshop is using virtual memory. When the indicator is set to Efficiency, a reading of less than 100% indicates that virtual memory is coming into play.
Using a striped redundant array of independent disks (RAID) can be a very worthwhile way to set up a scratch disk, particularly if you often edit images that are too large for your available RAM. Photoshop can write to RAID much faster than to a single disk, so your performance will improve. Opening and saving large files is also faster with RAID. But if you have a choice between buying RAM and buying a fast hard drive, get more RAM first, unless opening and saving large files already constitutes a significant bottleneck in your workflow.