On Wed, 6 Nov 2002 23:55:20 +0100, "Guillermo S. Romero / Familia Romero" 
> [EMAIL PROTECTED] (2002-11-06 at 1430.05 -0800):
> > Regardless, it should only be used to create a suggestion -- the tile
> > cache size should still be determined by the user.
> Yes, cos it still does not cover shared machines, nor machines with
> peaks in other tasks, nor disk tweaking, nor "is the current situation
> at startup the normal situtation". And then you get complains, again.

This has been discussed on this list several times in the past.  I do
not know if there was a real consensus on what the best solution is,
but here are the most important points that I have in mind:

- There is no optimal way to set the tile cache size (or the value of
  max-new-image-size, which can be different).  This depends on too
  many parameters (single or multi-user machine, background tasks,
  configuration of the swap space, etc.).  So whatever we do, it will
  never be a perfect solution.

- Although the user should be able to change the tile cache size at
  any time, the value that is suggested during the initial user
  installation should be improved.  Any guess is probably better than
  the current fixed value of 32 MB.

- Since the inital value needs to be computed only once during the
  installation, it can be guessed by any means, including running some
  helper programs.  This is very useful for the platforms on which a
  normal user does not have the privileges to get this information
  directly from the kernel (no /proc filesystem or no permission to
  access it).

- The inital guess should be tuned for a single-user machine.  The
  majority of the users are on single-user systems.  Those that are on
  multi-user systems will usually have a system administrator who can
  take care of adjusting the installation script or the global gimprc
  in such a way that the tile cache size is set to a lower value than
  what would be used for a single-user system with the same amount of
  memory.  We know that the solution will not be perfect anyway, so we
  have to take care of the most common case (single-user systems).

- We need to support many operating systems (Linux, Windows, MacOS X,
  Solaris and many others).  But if we cannot have a good way to guess
  the appropriate value of the tile cache size for all systems, then
  we should at least try to get a good guess for the systems that we
  can support.  The other systems can still use a fixed default.
  Again, this is a matter of taking care of the most common case.

- A good rule of thumb for setting the tile cache size seems to be:
  90% of the memory available when the GIMP is running for the first
  time, or total amount of memory - 64 MB, whichever is the largest.
  So the formula would be something like:
    min (32 MB, max (free * 0.9, total - 64 MB))
  It should probably be rounded to the closest multiple of 10 MB or
  32 MB in order to get a nice value.  Anyway, this is only the
  initial proposed value that the user can change at any time.

Just to show that it would be impossible to guess the optimal value
for the tile cache size: at work, I have a home directory that is
NFS-mounted on many machines.  As a result, I use the same gimprc for:
- my Sparc Ultra 10 (mostly single-user) with 256 MB RAM
- several Sparc Ultra 1 to Ultra 60 that have the same amount of
  memory or more but are shared by 5 to 10 users at any time
- several i686 Linux PCs with 128 to 768 MB RAM
I do not want to maintain dozens of gimprc files for each machine, so
I just setted for a size (200 MB) that seems to work most of the time.
I adjust it sometimes when I know that I will work for some amount of
time on a machine that has more memory and is not used by anybody
else.  Otherwise, I just keep the default because that's good enough.

But despite the fact that it would be impossible to find the optimal
value for all cases, I think that it is very important to provide a
better initial value than what we currently have.

Gimp-developer mailing list

Reply via email to