Adobe Lightroom is pretty much the de-facto standard for DAM (digital asset management) and bulk editing among professional and serious amateur digital photographers. As a heavy user since the beta of version 1 in mid-2006 (we are currently at version 3.4), I can appreciate why that is. Lightroom offers a reasonably intuitive well-designed interface for editing and organizing large numbers of images. It has a number of minor flaws, but it compares favorably to pretty much every competing software package I’ve tried.
That said, from an architecture point of view, it seems that Lightroom could stand some improvement. My basic complaint is that the software is sluggish. Not tear-your-hair out slow mind you, but lethargic enough to be annoying. And this is when dealing with 12MP RAW image files, on a machine that has 4 2.8GHZ cores and 6GB RAM. That is to say image sizes aren’t that large, and the hardware is pretty current.
Now some software is simply slow because it has a lot to do (although in that case, it usually can be improved too, at an algorithmic level). Lightroom however does not have that excuse. A quick test importing, exporting or editing images with the CPU load monitor open shows that Lightroom never consistently occupies 100% of all cores. Indeed for much of the time, it uses at most 1 core fully.
Typically if the limitation isn’t CPU, it’s disk speed or graphics card speed. These two however can also be ruled out in the case of Lightroom. Firstly, it doesn’t use the GPU for anything more challenging than displaying JPEGs. Secondly, even when running with the images and the catalog on a RAM disk (basically a virtual disk where main memory is used to store data), performance doesn’t change.
All of this is quite odd too, considering that importing and exporting images ought to parallelize quite nicely. I mean, suppose you’ve got 100 images to import. Give each core 25 of them, and you ought to be able max out all 4 cores without any difficulty. The same is true for exporting. Even editing tasks shouldn’t be that hard to parcel out to multiple cores. In a 4 core case, why couldn’t each core simply render 1/4 of the new image?
The only way I know for sure to speed up Lightroom is to pony up for a faster processor. But I’d be a lot more enthusiastic about that approach if the software were fully utilizing the processor I currently have. Here’s hoping that in the next release it does!
(This was not a problem when I first started using Lightroom in 2006. Of course, that was on a 667MHZ PowerPC G4 processor with a single core that Lightroom was only too happy to max out. And it was drastically slower on that machine then, even though the images were only 6MP).