4.
How to Set Your Tile Cache
During the data processing and manipulation of pictures, GIMP becomes
in the need of much main memory. The more is available the better is.
GIMP uses the operating system memory available
resources as effectively as possible, striving to maintain the work on
the pictures fast and comfortable for the user. That Data memory,
during the treatment, is organized in buffered blocks of graphic data,
which could exist in two different forms of data memory: in the slow not
removable disk or in the fast main RAM memory. GIMP uses preferably the
RAM, and when it runs short of this memory, it uses the hard disk for the
remaining data. These chunks of graphic data are commonly referred to as
"tiles" and the entire system is called "tile cache".
A low value for tile cache means that GIMP sends data to the disk very
quickly, not making real use of the available RAM, and making the disks
work for no real reason. Too high a value for tile cache, and other
applications start to have less system resources, forcing them to use swap
space, which also makes the disks work too hard; some of them may even
terminate or start to malfunction due lack of RAM.
How do you choose a number for the Tile Cache size? Here are some tips to
help you decide what value to use, as well as a few tricks:
-
The easiest method is to just forget about this and hope the default
works. This was a usable method when computers had little RAM, and
most people just tried to make small images with GIMP while running
one or two other applications at the same time. If you want something
easy and only use GIMP to make screenshots and logos, this is probably
the best solution.
-
If you have a modern computer with plenty of memory–say, 512 MB or
more–setting the Tile Cache to half of your RAM will probably give
good performance for GIMP in most situations without depriving other
applications. Probably even 3/4 of your RAM would be fine.
-
Ask someone to do it for you, which in the case of a computer serving
multiple users at the same time can be a good idea: that way the
administrator and other users do not get mad at you for abusing the
machine, nor do you get a badly underperforming GIMP. If it is your
machine and only serves a single user at a given time, this could mean
money, or drinks, as price for the service.
-
Start changing the value a bit each time and check that it goes faster
and faster with each increase, but the system does not complain about
lack of memory. Be forewarned that sometimes lack of memory shows up
suddenly with some applications being killed to make space for the
others.
-
Do some simple math and calculate a viable value. Maybe you will have
to tune it later, but maybe you have to tune it anyway with the other
previous methods. At least you know what is happening and can get the
best from your computer.
Let's suppose you prefer the last option, and want to get a good value to
start with. First, you need to get some data about your computer. This
data is the amount of RAM installed in your system, the operating system's
swap space available, and a general idea about the speed of the disks that
store the operating system's swap and the directory used for GIMP's swap.
You do not need to do disk tests, nor check the RPM of the disks, the
thing is to see which one seems clearly faster or slower, or whether all
are similar. You can change GIMP's swap directory in the Folders page of
the Preferences dialog.
The next thing to do is to see how much resources you require for other
apps you want to run at the same time than GIMP. So start all your tools
and do some work with them, except GIMP of course, and check the usage.
You can use applications like free or top, depending in what OS and what
environment you use. The numbers you want is the memory left, including
file cache. Modern Unix keeps a very small area free, in order to be able
to keep large file and buffer caches. Linux's free
command does the maths for you: check the column that says
“free”, and the line “-/+ buffers/cache”.
Note down also the free swap.
Now time for decisions and a bit of simple math. Basically the concept is
to decide if you want to base all Tile Cache in RAM, or RAM plus operating
system swap:
-
Do you change applications a lot? Or keep working in GIMP for a long
time? If you spend a lot of time in GIMP, you can consider free RAM
plus free swap as available; if not, you need to go to the following
steps. (If you're feeling unsure about it, check the following steps.)
If you are sure you switch apps every few minutes, only count the free
RAM and just go to the final decision; no more things to check.
-
Does the operating system swap live in the same physical disk as GIMP
swap? If so, add RAM and swap. Otherwise go to the next step.
-
Is the disk that holds the OS swap faster or the same speed as the
disk that holds the GIMP swap? If slower, take only the free RAM; if
faster or similar, add free RAM and swap.
-
You now have a number, be it just the free RAM or the free RAM plus
the free OS swap. Reduce it a bit, to be on the safe side, and that is
the Tile Cache you could use as a good start.
As you can see, all is about checking the free resources, and decide if
the OS swap is worth using or will cause more problems than help.
There are some reasons you want to adjust this value, though. The basic
one is changes in your computer usage pattern, or changing hardware. That
could mean your assumptions about how you use your computer, or the speed
of it, are no longer valid. That would require a reevaluation of the
previous steps, which can drive you to a similar value or a completely
new value.
Another reason to change the value is because it seems that GIMP runs too
slowly, while changing to other applications is fast: this means that GIMP
could use more memory without impairing the other applications. On the
other hand, if you get complaints from other applications about not having
enough memory, then it may benefit you to not let GIMP hog so much of it.
If you decided to use only RAM and GIMP runs slowly, you could try
increasing the value a bit, but never to use also all the free swap. If
the case is the contrary, using both RAM and swap, and you have problems
about lack of resources, then you should decrease the amount of RAM
available to GIMP.
Another trick is to put the Swap Dir on a very fast disk, or on a
different disk than the one where most of your files
reside. Spreading the operating
system swap file over multiple disks is also a good way to speed
things up, in general. And of course, you might have to buy more RAM
or stop using lots of programs at the same time: you can not
expect to edit a poster on a computer with 16MB and be fast.
You can also check what memory requirements your images have. The larger
the images, and the number of undoes, the more resources you need. This
is another way to choose a number, but it is only good if you always work
with the same kind of images, and thus the real requirements do not vary.
It is also helpful to know if you will require more RAM and/or disk space.