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.