Following on from this thread: PL5 doesn't make use of my workstation's performance at all - fixed in newer versions?
PhotoLab still uses resources like it’s 2007. I’d bet the average user of raw editing software is at least a little bit of an enthusiast and has a decent computer. 8GB is pretty standard these days and 16 GB is not uncommon in even modest mid-range laptops. PhotoLab rarely uses more than a few GB of RAM during previewing and editing. It simply does not leverage modern computers. On top of that, my CPU is doing nothing most of the time either. PhotoLab could be doing more in the background to have things ready to go for the user.
(And I know there’ll be some users on real budget PCs - the best thing about this performance improvement is that it could simply be turned off for lightweight PCs and the user experience would be exactly the same as it is now.)
Two very simple strategies I could see for dramatic improvements in user experience:
- Keep the last few images in memory and they can be instantly displayed. When you flick back and forth between two images, it’s recomputing the image every time you change, only for it to be tossed out again seconds later. Comparing images directly is impossible because there’s a half second of soft fuzzy preview before the whole image is loaded.
- Pre-compute the next image or two. When looking through new photos for the first time, each push of the right arrow key comes as a TOTAL SURPRISE to PhotoLab, even though that’s totally predictable! When going through a set of 500 or so photos, just having a quick peek at each one takes 20-30 cumulative minutes just of waiting for each photo to load and render (not including any time you spend actually looking at each photo). Do that in the background ahead of time, and you can vastly improve the speed users can get through photos.
Those are both very simple strategies to implement. If you wanted to get clever you could:
- cache more images when there’s resources for it (or just give us a slider in the settings and let users pick their own balance)
- pre-compute backwards as well if the user moves that direction
- pre-compute both directions when clicking on a random photo (it’s likely it’ll be compared to the adjacent photos)
- pre-compute when the user starts scrolling or mouse-ing over images before they even click if the system’s fast enough
There’s a vast amount of time-savings to be had in this area. This is how you make modern software that’s fast. I shouldn’t be waiting after I click every single time when most of my actions are totally predictable and follow very simple patterns.