Ccache - кэш для компилятора. Он ускоряет перекомпиляцию, кэшируя предыдущие компиляции и определяя, когда та же самая компиляция выполняется снова.Возможности:
- поддерживает
GCC, Clang, MSVC (Microsoft Visual C++) и другие аналогичные компиляторы- работает на
Linux, Windows, macOS и других Unix-подобных операционных системах- понимает языки программирования
C, C++, ассемблер, CUDA, Objective-C и Objective-C++- поддерживает удалённое кэширование с использованием пользовательских бэкэндов хранения, которые могут быть адаптированы к любому протоколу удалённого хранения.
- поддерживается многоуровневое кэширование: один локальный кэш (или отсутствие локального кэша) и один или несколько удаленных кэшей.
- поддерживает быстрые режимы «прямой» и «зависимый», позволяющие избежать запуска препроцессора.
- использует кэш
inode, чтобы избежать необходимости многократного хеширования одних и тех же заголовочных файлов во время сборки (на поддерживаемых ОС и файловых системах). - поддерживает сжатие с использованием
Zstandard.- для хеширования основного входного сигнала используется быстрый и безопасный алгоритм
BLAKE3.- для обнаружения повреждений данных используется проверка контрольных сумм содержимого кэша с помощью
XXH3.- ведет статистику по попаданиям и промахам.
- автоматическое управление размером кэша.
- простая установка.
- низкие накладные расходы.
- поддержка преобразования абсолютных путей в относительные для повышения коэффициента попадания в кэш.
- при необходимости используется клонирование файлов (также известное как «референсные ссылки»), где это возможно, чтобы избежать копирования.
- по возможности используются жесткие ссылки, чтобы избежать копирования.
https://github.com/ccache/ccache
Web: https://ccache.dev/
опубликовано в @gitgate
#cache #dev