Caching

Overview

The caching feature of FASTBuild allows compilation results from one build to be shared with another. If the inputs are the same, the compilation can be replaced with a simple file copy.

Caching requires:

There are some performance implications of the cache that should be considered for optimal benefit.

Compilation Settings

Some compilation settings are incompatible with caching. If any object cannot be safely cached, it will automatically be built without caching. A build can safely mix cacheable and uncacheable objects.

GCC/SNC/Clang

MSVC

Cache Location

The cache location can be a local or network path, specified either by:

The Settings option overrides the Environment Variable.

On Windows UNC format paths are also supported.

Activation

The cache can be activated by the use of:

Be sure to read the Performance Implications section for use of the best options.

Performance Implications

GCC/SNC/Clang
There are no adverse impacts on performance using the cache. The overhead is so low, it can be considered to be free in all situations.

MSVC
Using the cache adds some additional overhead which in some cases (such as zero cache hits) can make compile times slightly slower overall. The overhead is generally quite minimal, and as little as a single cache hit can be enough to offset this cost.