6.2. System Resources

Figure 15.69. System Resources

System Resources

This page lets you customize the amount of system memory allocated for various purposes. It also allows you to set the size of thumbnail files that GIMP produces.


6.2.1. Options

Resource Consumption

Minimal number of undo levels

GIMP allows you to undo most actions by maintaining an Undo History for each image, for which a certain amount of memory is allocated. Regardless of memory usage, however, GIMP always permits some minimal number of the most recent actions to be undone: this is the number specified here. See Section 3, “Undoing” for more information about GIMP's Undo mechanism.

Maximum undo memory

This is the amount of undo memory allocated for each image. If the Undo History size exceeds this, the oldest points are deleted, unless this would result in fewer points being present than the minimal number specified above.

Tile cache size

This is the amount of system RAM allocated for GIMP image data. If GIMP requires more memory than this, it begins to swap to disk, which may in some circumstances cause a dramatic slowdown. You are given an opportunity to set this number when you install GIMP, but you can alter it here. See How to Set Your Tile Cache for more information.

Maximum new image size

This is not a hard constraint: if you try to create a new image larger than the specified size, you are asked to confirm that you really want to do it. This is to prevent you from accidentally creating images much larger than you intend, which can either crash GIMP or cause it to respond verrrrrrrry slowwwwwwwwly.

Swap compression

This sets the compression method used for tile data stored in the swap. Compression can both reduce the swap size, and increase its speed, by minimizing input and output. Values are best performance (the default), balanced, and best compression, or none to disable compression altogether.

Number of threads to use

Multi-threading allows making use of multiple cores for processing. Not all features make use of that for the moment. A point of interest is that multi-threading happens through GEGL processing, but also in GIMP core itself, for instance to separate painting from display.

Network Access

Check for updates

When this option is enabled, GIMP will regularly check at start-up if a new version is available. If there is, you will get an alert that you can update. Note that this option requires you to have an internet connection and for GIMP to be allowed access to the internet.

Image Thumbnails

Size of thumbnails

This options allows you to set the size of the thumbnails shown in the File Open dialog (and also saved for possible use by other programs). The options are No thumbnails, Normal (128x128), and Large (256x256).

Maximum filesize for thumbnailing

If an image file is larger than the specified maximum size, GIMP will not generate a thumbnail for it. This options allows you to prevent thumbnailing of extremely large image files from slowing GIMP to a crawl.

Document History

Keep record of used files in the Recent Documents list

When checked, files you have opened will be saved in the Document history. You can access the list of files with the Document history dialog from the main menu: FileOpen RecentDocument History.

6.2.2. How to Set Your Tile Cache

This section covers the Tile cache size setting under System Resources.

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, 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.

  • 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:

  1. 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.

  2. 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.

  3. 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.

  4. 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.