Start

The Pane Caches

Introduction to caching

Nearly all applications running on macOS make use of file caches. These caches are small files which store precomputed or prefetched information needed very often. By “remembering” and reusing previously requested results, applications can be accelerated significantly. They just access the already known data in their cache files, and don’t need to recompute or to refetch the information. The data stored in cache files can include, for example, the last few Internet web pages an application has accessed, photos of buddies you chat with, or the data to quickly display your Desktop image, already decompressed, scaled and optimized for your display.

Many applications are not actually “aware” that they are using cache files because macOS may create the caches automatically when the programs initially request data via the operating system. This typically occurs in cases where macOS knows in advance that caching will speed up similar requests later on. For example, each program supporting a “check for updates” feature will usually contact a specific web server to fetch status information. If this is done using standard system procedures, macOS will automatically create a web cache for this application and the affected user account in order to accelerate access to its update server. The application does not really “know” this, but will receive the requested information via macOS more quickly than usual.

Caches are responsible for very significant speed gains, but problems can arise if a cache becomes corrupt. A corrupt cache can contain incorrect, outdated or otherwise unusable information, and any of these conditions can cause very strange effects in the applications using it. Under normal circumstances, macOS or the affected applications should detect corruption within the cache, discard the cached information and automatically rebuild the cache when new data is requested. However, this detection function might not always work in practice, especially after a network connection has been interrupted, after a program has crashed, or when your computer has had problems with its clock, rendering it unusable to track which cached information is up-to-date and which is outdated.

Due to the hidden nature of caches, problems resulting from corruption are very difficult to find. You, the user, only see that “sometimes something is very wrong with some applications.” If you experience strange problems with an application, it could be the result of a corrupt cache, but you cannot be sure. The simple, brute-force (and quite possibly harmful) method used to determine whether a cache is corrupt is to delete all the cache files, restart the application, and see if the problem disappears. If it does, you’re in luck; if not, you will have lost that valuable data stored in the caches. It may take hours, days, or even weeks before your system has recovered by rebuilding the caches with the recomputed and refetched information. During this recovery period, the computer may run significantly more slowly than usual.

Although cache cleaning can be an effective maintenance step to resolve specific problems, it can have, as we have seen, harmful side effects. For this reason, TinkerTool System introduces a more intelligent approach: You can temporarily deactivate caches, assess whether doing so has a positive effect, and reactivate them if it does not. This more sophisticated approach effectively avoids the problem of cache cleaning often making the original problem worse.

Some Internet sites recommend cache cleaning (which is actually just cache deletion) as a regular or even scheduled maintenance step. This recommendation is highly irresponsible. We strongly advise you not to follow it. Cache cleaning always has the negative side effect of slowing down your computer. It should only be used as a last resort when troubleshooting a well-defined problem, and knowing ahead of time that the positive results will indeed outweigh the negative effects of losing cache data.

Unprotected and Protected Caches

TinkerTool System offers smart cache deactivation for the following two categories:

Two other cache categories can only be cleaned because smart deactivation is prevented by System Integrity Protection of macOS:

In professional environments, the private home folders of users are usually stored on a central file server, not on the individual hard disks of local computers. Because network access is typically a bit or even significantly slower than access to a local disk, macOS keeps all caches where fast access is important in a separate area on the system disk. TinkerTool System refers to them as high-speed caches. They are used for Internet browsing or for temporarily storing thumbnail images, for example.

Unprotected caches
Unprotected caches

Using the Cache Maintenance Functions

Smart Cache Deactivation

Smart deactivation of caches as a troubleshooting procedure is done using the following steps:

  1. Define for yourself what exact problem —possibly caused by a corrupt cache— you have to fix. Find a program where you can reproduce the exact problem and test whether only one user account or all user accounts on the computer are affected by it.

  2. Start TinkerTool System and open the item Caches > Unprotected Caches. Select the cache sets which might be causing the problem. Then click the button Deactivate selected caches.

  3. TinkerTool System will ask you to quit all running applications. You can also have TinkerTool System do this automatically for you. Depending on the cache sets you have selected, the program will then perform a logout or restart.

  4. Log in to the system again (with the same user account used in the previous steps). TinkerTool System will start automatically, giving you the option either to restore the caches or to discard them. Keep the application running.

  5. Test if the problem you defined during the first step has indeed be resolved by deactivation of the caches. If yes, you might accept the harmful effects of losing the cache data. In this case, click the button Discard previous caches. If no (the problem was not fixed and can still be reproduced as before), click the button Restore previous caches. In the latter case, TinkerTool System will again perform a log out or restart, respectively, and all selected caches will be returned to their previous states. You won’t have negative side effects.

Additional Notes

TinkerTool System tries to guide you automatically through the smart deactivation process. A short summary of the instructions, and a large green arrow marker are used to visualize in which state the computer is in. Additional status messages and notes are given in bold face in the lower left corner of the window.

You should not postpone the decision to restore or discard the caches. Please make the decision as soon as possible.

If you activated the option Caches of the operating system and were forced to discard these caches, macOS will not only run more slowly but will also record a large number of warning messages in the system log, indicating that the so called XPC Helper Cache is no longer active. Because this particular cache might not be rebuilt until the next operating system update, it is strongly recommended that you trigger a manual update of this cache. For more information, please see the paragraph XPC Cache at the end of this section.

Cache Cleaning (Protected Caches)

To clean a cache category completely, deleting all its data, perform the following steps:

  1. Open the item Protected Caches on the pane Caches.
  2. Select the cache sets which are causing the problem.
  3. Click the button Clean Caches.

Remember that cache cleaning should be avoided whenever possible. It will cause your system to run significantly more slowly for some time. Only use cache cleaning as a last resort, if you know for sure that the contents of a specific cache category are causing a technical problem.

Cleaning of protected caches
Cleaning of protected caches

Font Caches

macOS uses a specialized background service for font management, the font registration server. This background program is responsible for finding out which fonts are available on your system, keeping track of which user has activated which fonts, determining which of the more than 200,000 character glyphs supported by macOS are available in each of the fonts, managing the auto-activation of fonts, and performing many other font-related tasks.

Your computer may contain dozens of user accounts, several hundred fonts and millions of different characters. To bring them all together, macOS must maintain sophisticated background databases of glyphs, characters, fonts, and individual user settings. These databases consist of font caches. The operating system as a whole and each user account keep their own font caches.

In the event that the font registration server experiences a technical problem, the font caches can become corrupt. This will cause strange effects when working with fonts, e.g. delays after login, unexpected errors in the Font Book application, the spontaneous activation of fonts which should be inactive, or —in the worst case— a complete failure to display the correct characters for certain fonts which basically results in “garbled text.”

Font caches
Font caches

If you are experiencing such a problem, TinkerTool System can assist you in cleaning the font caches. The clean operation can either be performed for the current user account or for that user account and the whole operating system together.

When cleaning the caches of the font server, a logout will be necessary. macOS will automatically rebuild the font caches during the next login. This operation should complete within a few seconds or minutes. TinkerTool System automatically guides you through all necessary steps.

Perform the following steps to clean the font caches:

  1. Open the tab item Caches > Font Caches.
  2. Select the macOS font caches which should be cleaned.
  3. Click the button Clean font caches.
  4. Follow the instructions of the program.

Icon Caches

The Dock, the Finder and other parts of the operating system use icons to refer to the applications you have stored on your Mac. To quickly find the correct image for each application, the operating system collects information about the icons in central databases, known as the icon caches. The icon caches are usually robust; however, under certain circumstances they can become damaged. In such a case, the application icons may no longer be shown correctly, or some of them are substituted by the generic application icon, a white rectangle with the symbolized letter A.

Icon caches
Icon caches

If you are affected by such a problem, you can let TinkerTool System clear the various icon caches of your user account, causing the operating system to reacquire the necessary information and to rebuild the databases. If all of the user accounts on your computer are affected by application icon failure, you can clear the icon cache of the operating system as well. You’ll have to log out in order to complete the operation. If the icon caches of the operating system have been cleared, it will be necessary to restart the computer instead.

Perform the following steps to clean the icon caches:

  1. Open the tab item Caches > Icon Caches.
  2. Select the caches which should be cleaned.
  3. Click the button Clean icon caches.
  4. Follow the instructions of the program.

Drivers and Kernel Extensions

Driver Cache

macOS can be loaded on a large number of different Macintosh systems. Because each computer model contains different devices, such as network cards, graphics chips, or disk interfaces, the part of the operating system that controls these devices is structured into small software modules, called drivers. Each type of hardware device corresponds to a specific macOS driver that controls the device, or more precisely, all devices of its kind. macOS needs only to load the drivers which correspond to the actual devices in the computer upon which it is running. This way the OS does not need to load all the software components used to control all Macintosh systems ever built. Drivers are organized as kernel extensions, a more general term used for the small software modules that add specific functionality to the inner core of the operating system.

macOS keeps several internal caches used to optimize the startup phase of the operating system. Among other things, these caches hold the data about which kernel extensions are needed to operate your particular computer, and which are not. Thus, the system knows in advance which drivers it does and does not need to perform a complete search which drivers and devices are available, and how these two sets must be matched with each other. The use of caches significantly shortens the startup process.

Driver cache and staging area
Driver cache and staging area

Under certain conditions, these caches can become corrupted or contain outdated information. This could happen for example if a third-party kernel extension does not work (or was not installed properly), or if you added or removed devices from your computer and due to some technical issue, macOS lost track as to which driver needed to be activated or deactivated.

TinkerTool System can assist you in cleaning these startup driver caches. macOS will automatically rebuild the caches after a few seconds. No restart is required. To clean these caches, perform the following steps:

  1. Open the tab item Caches > Driver Cache.
  2. Click the button Clean startup cache.
Staging Area

Modern versions of macOS no longer permit that any vendor can install kernel extensions as part of their programs, even if the applications need administrator-authorized installations. The developers need expressed permission from Apple to develop such extensions which is verified by macOS with digital signatures. In addition, the installation of extensions must be explicitly acknowledged in a separate step, using a normally hidden user interface at System Preferences > Security & Privacy > General.

To put all kernel extensions provided by third-party applications under some kind of quarantine, before the user either permits or rejects their use, the respective files are collected in a staging area, using one or more special system folders. These folders are under System Integrity Protection and cannot be modified by anybody, no matter what permissions are used. This means if the user rejected the activation of a specific third-party driver, that driver’s files will remain in the staging area basically forever, because they cannot be removed. Folders used for staging are usually

but Apple may change this any time without notice.

TinkerTool System can help in this case, indicating to the operating system it should clear its staged kernel extension files. Perform the following steps to do this:

  1. Open the tab item Caches > Driver Cache.
  2. Use the radio buttons at the bottom of the window to indicate whether you like to remove all staged objects, regardless of their current role in the system (Clear all objects), or limit the removal to cases where the associated applications can no longer be located at their original installation places. (This makes sure that drivers which still wait for approval or denial in the middle of an unfinished installation job cannot be deleted inadvertently.)
  3. Click the button Clean staging area.

There are special drivers that have been developed by third parties, but are officially distributed by Apple as part of macOS. These kernel extensions are staged as well and may also be removed if you select the Clear all objects option. However, macOS may automatically restore those particular files later.

XPC Cache

Modern versions of macOS and applications developed for the macOS platform make extensive use of an Apple technology known as XPC (Cross Process Communication). Running processes can use XPC functions to communicate with each other via secure and reliable channels. Programs especially need XPC when they have been split into different parts internally, e.g. to distribute work onto multiple processor cores, or for privilege separation (see also the notes on the security policy of TinkerTool System).

XPC Helper Cache
XPC Helper Cache

Many applications and parts of macOS come with hidden internal helper programs, known as XPC services. These services contain components which talk to each other via XPC. Because macOS requires significant time to determine which XPC services are offered by each application, and to locate all of the different services, it uses a dedicated cache, the XPC Helper Cache, to store this information.

After you have used TinkerTool System’s feature to deactivate or even to discard the Caches of the operating system, the inter-process communication can slow down. In addition, macOS may record thousands of error messages in its internal system log indicating that the XPC helper cache has been lost. This also slows down the system and wastes storage space. To quickly recover from such a situation, you can use TinkerTool System to let macOS rebuild the XPC cache. Perform the following steps:

  1. Open the tab item Caches > XPC Cache.
  2. Click the button Rebuild XPC Cache.