A few days ago I was trying out Adobe Photoshop CS4 under my OS, Windows
7 RC 64 bit, and although I prefer using GIMP even though it lacks
some very useful features, I was surprised at one thing in particular:
its speed when many layers are used (20-25+, and on very complex works I
often use even more). On Photoshop CS4 layers refresh almost instantly,
new ones are created with about the same speed, and there are generally
no graphic slowdowns on complex works.
At some point I tried to save my work done under Photoshop and import it
in GIMP. I discovered that all layers were cropped to their maximum
extents (empty borders taken out). I thought that this could be one of
the main reasons why Photoshop is faster when many layers are used:
since unused borders are taken out, there's less to redraw to the screen
each time or to check out for transparency. I'm not sure though if this
is done by GIMP during the import process or in a transparent way (when
a new layer is created it's assumed that it will cover the whole canvas)
automatically in Photoshop, though.
To verify my claim I tried to make a similarly complex, multilayered
work natively under GIMP 2.6.6 (canvas size A4, 300 dpi, about 3500x2500
pixels) until at some point I reached about 25 different layers. Of
course the program was still usable, but some slowdown was evident
especially when toggling layer visibility (operation which took a while
to complete). I then applied my so-called "Photoshop optimization" by
autocropping all layers (Menu Layer>Autocrop), and working speed went up
noticeably, though not dramatically (note that I'm using an Intel Core 2
Duo 3.16 Ghz E8500 processor with 4 GB RAM).
What I wonder is if GIMP could someday get advantage dynamically,
automatically and in a transparent manner to the user of autocropping
extra borders from layers (without manual intervention) in order improve
performance when large canvases and many layers (the normality in
creative works, not so much when only retouching photos) are used.
For example, the user would create a 3500x2500 pixels new layer, but if
he drew only in a small 100x200 pixels area, then the program would
internally save and process only that area, while still allowing the
user to draw outside of it (the layer extents would be automatically and
What do you think about this proposition?
Gimp-developer mailing list