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 
transparently increased).

What do you think about this proposition?

Gimp-developer mailing list

Reply via email to