Undeniably, Photoshop is the 800-pound gorilla of image-processing programs. And like any large beast, Photoshop can move ponderously slow. Fortunately, the right hardware and software decisions on your part can perk it up considerably. Unlike real-world performance enhancement, this won’t involve the use of steroids or risk congressional investigation. It’s not even very expensive.To speed up the beast, it helps to understand why Photoshop seems to plod when you need it to sprint.
Photoshop uses RAM for storing the image you’re working on, for intermediate results, undo and history states, and as a workspace for plug-ins and filters to do their calculations. When it runs out of RAM, Photoshop uses hard- drive space if it can (some functions require real RAM). That causes two bad things to happen. The first is that using the hard drive as working memory is much, much slower than using RAM, and your performance can plummet by as much as 10 times. Worse than that, the functions that require real RAM may simply seize up.
Memory: Your best friend
Great Photoshop performance demands as much RAM as the program can handle and really fast hard-drive access when needed. The former is straightforward; the latter can get tricky.
Buying a modestly faster CPU isn’t cost effective unless you can afford to buy top-tier and max out on performance-enhancing accessories. The price difference between a machine with the fastest CPU you can get and one that is 10% slower is typically around 15%— or several hundred dollars. Unless the other components in the box are also being upgraded, the average performance difference you’ll see between the two machines is only about 5% overall improvement. Spending that money on more RAM or faster drive access offers a better pay off.
If you’re still running a 32-bit platform, though, it’s really time to bite the bullet and upgrade your machine. Regardless of how much physical RAM you have in a 32-bit system, most operations need to take place in the lower 2 GB of RAM. Photoshop will be competing with plug-ins, some OS function, and print rendering for that precious 2 GB of memory. Problems will pop up in all sorts of unexpected places; for example, prints may fail to fully render (Figure 2).
You may be able to get noticeable improvements in performance at no cost at all by adjusting Photoshop’s settings. If you check out this online information from Adobe and read all the tips, I bet you will find one or more that you can apply to your system:
• Optimize performance in Photoshop CS3 on Mac OS: tinyurl.com/3bwedw.
• Optimize performance of Photoshop CS3 on Windows XP and Vista: tinyurl.com/3xawjy.
Your computer already has monitoring tools that let you see where bottlenecks are. Task Manager in Windows and Activity Monitor in Mac OS X (Figure 1) can show you how much real memory your different programs (including the OS) are using and what’s consuming processor cycles that could be better used by Photoshop.
Photoshop itself includes an important monitoring tool, the Info palette (Figure 3). Set the options for that window to display “scratch sizes” and “efficiency.” The former tells you how much memory Photoshop is consuming at that moment. It’s a good way to track when you’re getting close to the point where Photoshop starts swapping to disk. Efficiency tells you how fast an operation runs. When there are no bottlenecks it reports close to 100%. When you start swapping to disk, that number plummets. I’ve seen it get as low as 11%; operations that should take seven seconds if they could be handled entirely in RAM took a full (boring!) minute.
If you’re serious about tuning up your system, one other tool you should get is a good disk-performance test program. My favorite for Mac OS X is Lloyd Chambers’s DiskTester 2, which you can find at diglloyd.com/diglloyd/software/ disktester/index.html.
This is not a free utility, but it is inexpensive and very, very good. I used it for my disk benchmarks and analysis in this article. One warning: it is a UNIX command-line program. I am not at all a UNIX geek, but fortunately Lloyd has an excellent user manual with sample commands that you can cut- and-paste and adapt to your system.
My primary Photoshop system is now a Mac, so I’m not quite as up on good benchmarking programs for Windows systems, but PassMark (www.passmark.com/products/pt.htm) seems to have a reasonable one that has a free 30-day evaluation period.
Now that we’ve covered the basic principles, let’s get down to specifics. How much RAM should you have and what does it buy you, performance-wise?
Billions and billions of bytes
CS3, the current version of Photoshop, and its predecessor, CS2, handle memory essentially the same way. Earlier versions of Photoshop handle memory differently and can’t use as much of it. Sometime in the near future we will see Photoshop CS4, which will be fully 64-bit native under Windows (Mac users will have to wait for CS5). Windows users should be able to make direct use of essentially unlimited amounts of RAM; the Mac folk will have to wait to see if CS4 includes any memory enhancements over CS3.
But regardless of which version of Photoshop you are or will be running, the fundamental principles will remain—the more RAM you have, the harder you can push Photoshop before it hits the memory wall. But just where does that wall lie?
Long ago, a rule of thumb held that three to five times as much RAM as your image file size was adequate. Layers, history states, and sophisticated plug-ins have made that inadequate. My experience says that if you’re running with less than 10 times the file size you’re going to find yourself swapping to disk, even if you’re only making moderate use of those features. If you’ve got 20× RAM, you’re pretty safe from hard- drive hell. Never run with less than 3× RAM; between the memory needed to hold the image, the undo state, and scratch space for Photoshop to work in, anything less than that instantly starts disk swapping.
Consider that a 12-megapixel digital camera produces a 75 MB 16-bit color image. Twenty times that takes you up to 1.5 GB, which is the absolute maximum amount of RAM you’d safely be assigning Photoshop on a 32-bit system. Fortunately, on a 64-bit system, Photoshop can use 3 GB of RAM for the main storage. Photoshop plug-ins can use 700 MB of the RAM between 3 and 4 GB (previously, they had to share the same RAM space as the main program). RAM from 4 GB to 8 GB can be used as a virtual hard drive. It won’t run as fast as the main memory, but it will run much, much faster than swapping to a real hard drive, so you won’t see a serious loss in performance.
What’s it like when RAM gets scarce? The precise answer is going to depend on exactly what you’re doing, but Other World Computing (OWC)—macsales.com—ran a benchmark suite on several different machines configured with different amounts of RAM and hard-drive storage. They’ve generously given permission for me to excerpt their results here. The full tables with detailed commentary can be found on their Web site at: eshop.macsales.com/shop/apple/memory/Mac book_Pro_17_Memory_Benchmarks.
One test measured the time it took to execute a custom 21- step Actions script using Adobe Photoshop CS3 on a Mac- Book Pro 17-inch (Mid 2007), 2.4 GHz, Core 2 Duo, with a 4MB L2 Cache. It found:
RAM (MB) 1024 2048 3072 4096
Time (sec.) 127.28 114.78 83.28 79.69
I’d say these times are pretty representative of how Photoshop behaves when you’re doing serious work on images of modest size. Notice how the performance times improve as the memory goes up; that’s entirely because Photoshop is able to do more and more in RAM without accessing the hard drive.
The next test (done on the same computer, but with a faster hard drive) offers a much better idea of what happens when Photoshop gets starved for RAM. A “RAM Hog” test timed how long it took to run OWC’s standard 21-step Photoshop Action in Photoshop CS3 when 50% of the installed RAM was taken up with a RAMDisk.
Computer with stock hard drive:
RAM (MB) 1024 2048 3072 4096
Time (sec) 483.97 257.06 85.33 78.94
Computer with faster 7200-RPM drive:
RAM (MB) 1024 2048 3072 4096
Time (sec) 457.19 237.54 83.75 73.31
In truth, no power user would ever give over a chunk of RAM to a RAM disk when they needed maximum resources for Photoshop. But it’s analogous to working on a very large image. The point is that with the lesser amounts of RAM, Photoshop is having to swap to disk almost immediately, which is what will happen when you’re working on your large files and you finally run out of RAM.
That phenomenal six-fold difference in speed is due to Photoshop’s disk swapping. That’s why you want to put that off as long as possible by having as much RAM as possible. At $25 per gigabyte, RAM’s a cheap performance enhancement.
You can also see that the faster hard drive modestly improved performance. It’s just a handful of percent, but it really depends on how much faster your new hard drive it is. If it’s more than twice as fast as your old hard drive (and many times it will be) the differences can be considerably greater.
The configuration of your hard drives is supremely important, but before I get to that, I want to mention a few other aspects of memory conservation. Photoshop competes with other software for RAM. Modern operating systems move chunks of RAM and code around on demand. Don’t leave Photoshop idling in the background just for convenience’s sake. It becomes a lot more sluggish as other applications and demands on the system nibble away at the blocks of memory that Photoshop was using. Whenever you’re doing serious work, start Photoshop fresh.
Use the Edit/Purge command. When you start to get close to the disk-swapping point, you can free up a lot of RAM. Remember that once you select Purge All, you are starting with a clean history and no undo state. Make sure you’re really happy where you are with your work before you do this. Still, sometimes this is the only way to avoid massive slow- downs in performance.
Be aware, though, that Photoshop isn’t 100% perfect about freeing up memory that it doesn’t need. Monitor the info palette; if memory seems to be creeping up even when you’ve purged, it’s a good time to shut down Photoshop and restart it to give it a clean slate.
So much for the intricacies of real memory. What can we do to improve things when Photoshop has to go to the hard drive, as it inevitably will? Two things: install the fastest hard drives you can find, and have multiple hard drives running off of different data buses.
Under a modern operating system, your computer is never doing just one thing. For example, the OS swaps chunks of program code around to optimize performance. That’s why a program like Photoshop starts up so much more quickly the second time you launch it; most of the code is still resident in RAM and doesn’t have to load from the hard drive.
You can bet that Photoshop scratch files are not the only disk access going on. If you’ve only one hard drive, the band- width will get divvied up between competing processes and the drive’s heads will spend more time seeking the right data tracks on the drive. You can be looking at a several-fold loss in performance across your system. If everything is sitting on the same hard drive, even operations as straightforward as saving the file you’re working on back to disk run much more slowly when Photoshop runs out of RAM.
Ideally, you should have separate drives (and buses) for the OS, programs, documents, and application scratch files. My old PC has two IDE buses, plus SATA and FireWire 400. Once I got OS, program, data, and scratch files properly segregated, I saw my sustained DVD write speeds (another disk-intensive operation) jump from 3× to 11×. That’s what getting rid of drive contention can do for you.
Many times it’s just not possible to do this. My current high-end machine is a Core 2 Duo MacBook Pro with 4 GB of RAM. It only supports one hard drive on one internal SATA bus. I bought a very fast drive, and it sustains read/write speeds approaching 60 MB per second. Still, it’s just one drive.
External FireWire or SATA drives are the answer. My Buffalo FireWire drive writes 32 MB a second and reads 37 MB second, and that’s about as good as you’ll get out of FireWire 400. An external dual-drive SATA case will only set you back a few hundred dollars and it can quadruple that performance.
Does partitioning one internal drive into multiple volumes help or hinder? A separate partition for scratch files lets them be written as one contiguous set of data, but the drive has to keep moving its heads between the partitions. To find out, I set up two scratch partitions at opposite ends of the drive. The fast scratch partition ran about 10% faster than the main partition. The slow scratch partition ran almost 25% slower.
I gave Photoshop the maximum allowable 3 GB RAM on a freshly booted machine (Activity Monitor initially reported 3.3 GB of free RAM and 200 MB of inactive memory). I instructed Photoshop to combine 11 stills to create a 350 MB panorama; that commandeered 10 GB of drive scratch space.
Surprisingly the execution time (just under 4 minutes) was nearly the same no matter where I put the scratch file. On my system, it doesn’t seem to matter too much how the hard drive is organized or partitioned if it’s reasonably fast.
What about adding a second drive? Does a fast internal drive trump a slower external one? I tested my fast external FireWire drive and one that ran 20% slower with a super- large panorama: 22 stills combining to make a 750 MB image (Figures 4 and 5). The reserved scratch space was a whopping 26 GB.
Although my fast FireWire drive was only a bit better than half the speed of my internal drive, Photoshop ran as fast or slightly faster when the scratch file was on the FireWire drive. FireWire 400 can’t hold a candle to a fast internal drive, but it can perform just as well when the whole machine is dedicated to Photoshop. It would perform much better if multiple tasks were going on. No question that multiple drives with multiple data buses are the way to go.
When I used the slower FireWire drive, execution times increased by 25 to 30%. I didn’t have a dual SATA external drive to test, but I’m pretty convinced that I would have seen at least a 20 to 25% improvement in performance over the fastest times I got from the Buffalo.
Since my fast FireWire drive also supports USB2, I tested it as a USB drive as well. DiskTester 2 reported that USB2 per- formance was substantially worse than FireWire; both the read and write speeds dropped by more than 40%. Execution times were as much as 40% longer too.
Corsair just released their Flash Voyager GT 16GB USB2 thumb drive, and it’s a real speed demon for its sort; its sustained read speed (21 MB/sec) was as good as my USB-connected Buffalo drive, while the write speed (15 MB/sec) was only about 15% worse. Slow, but I figured that this little thumb drive might be real handy for traveling photographers.
To my surprise, the Corsair proved completely unsuitable— the test took five to six times as long to execute when the scratch file was on the Corsair drive. It’s useless as a Photo- shop scratch disk. What a disappointment for road warriors.
It’s clear that two drives can be much better than one, especially if they’re running on different data buses. Make sure you buy fast drives. There are lots of Web sites out there that benchmark hard drives, like barefeats.com. I estimate that the difference in execution times between the slowest and the fastest external drive configurations people might plausibly be using would be nearly a factor of two. Avoid USB2; you’re going to take a severe performance hit under the best of circumstances. FireWire 400 is surprisingly good; FireWire 800 would be better. If you want to do it up right from the get-go, buy an external SATA interface card and set up a dual-drive array.
Need a peppier Photoshop? Add a few hundred bucks worth of RAM and a few hundred bucks worth of fast hard drive to your system. You’ll think you’ve bought a whole new computer.