On Fri, Nov 12, 1999 at 11:38:57AM +0100, Ewald R. de Wit wrote:
> You can always read in the linear file in row order (and write the
> results in column order to memory in the case of 90 degree rotation).
> This will go at full disk speed. 

This has optimal performance when the image data is on disk, and there is
precisely enough memory spare to store a duplicate image in memory, and
assuming that your disk is very slow and your memory is very fast, which
is probably true on a typical PC architecture.

For almost all the interesting cases this has abysmal performance.

Both images fit in memory => Since this isn't a ZX Spectrum we have a
cache thrash problem, if we don't use tiles then this will cost us 2x
-- 10x performance over a mid-sized image.


Neither image fits in memory => We hit OS swap, worst case scenario
flags start going off in the swapper heuristics and we wait until
doomsday while "memory" is paged on and off the disk multiple times
for each row/ column we process.


Sub-image => The process you describe touchs whole strips in this
case which can again cost us 2x -- 10x performance without a thought
on mid-sized or large images.

So Ewald, unless your critique of the Gimp tile system is going to
get a bit more sophisticated I'd prefer to see time spent on fixing
the thing to not leak tiles onto disk, rather than trying to take
us back down to the level of Paint Shop Pro 4.0


Reply via email to