Photoshop CS4 performance bugs
Related entries: Opening and saving files in Photoshop is SLOW, CS4 and OpenGL, CS4 Upgrade Hassles and CS4 Sticker Shock.
Be sure to see my new site MacPerformanceGuide.com.
I’ll be updating my Optimizing Photoshop Performance report soon with results from a 32GB Mac Pro configuration. In a week or two I’m planning on adding results from other brands of hard drives. If you work with large files in Photoshop, this report alone will be well worth your money in subscribing to DAP (see Contents). PC (Windows) users will find the report quite useful, as the principles apply cross-platform.
In the course of researching how to make Photoshop run as fast as possible with large files, I have found two performance bugs. Maybe there are mitigating factors and I’m wrong for some out-of-band reason, but here they are:
(1) Memory limited to 2810MB in 32GB configurations
With a Mac Pro configured with 8GB or 16GB of memory, Photoshop allows a Let Photoshop Use choice of 3072K (100%).
With a 32GB configuration, the maximum drops to 2810K (100%). This shows up as slightly reduced performance in my benchmarks. How can having 32GB instead of 16GB mean reducing available memory by 262MB?!!!
I wrote my own 32-bit program and verified that with either a 16GB or 32GB configuration the program can allocate exactly the same amount of memory: 3480MB using 10MB chunks, or 3497MB using 1MB chunks, exactly the same figure with either configuration. So it’s hard to believe that this Photoshop behavior is anything other than a bug.
(2) Degraded RAID-set performance
I just could not reconcile the non-linear scalability I was seeing with striped RAID, so I researched the answer and found out one possibility: Photoshop performs disk I/O that in theory forces a portion of every write to a striped RAID to run at the speed of a single drive! We’re talking about dropping from 500MB/sec to 110MB/sec on a 6-way stripe!. Reads are unaffected.
However, the Mac OS X file system cache mitigates this problem—it is caching the writes, and might even be zero-padding newly-written blocks. At any rate, my test results are clear, the performance isn't scaling as expected, indicating a bottleneck somewhere, even if Mac OS X is actually mitigating the disk I/O problem via caching.
As a software engineer, I’ve designed high-performance software for over twenty years, but even a little thinking about disk performance will preclude the self-defeating behavior found in Photoshop CS4. Writing “nice” sizes is always beneficial with disk drives (on Mac OS X with SATA, “nice” sizes are 128K * the number of stripe drives, to minimize transactions, according to the SoftRAID driver developers eg 768K for a 6-way stripe).
…
The thing about these bugs is that I paid $200 for the CS4 “upgrade” which so far has yielded not a single useful new feature for my work, yet basic issues like these go unaddressed.