Ccache
Ccache — кэш для компилятора, который ускоряет повторные сборки, переиспользуя результаты предыдущих компиляций. Он поддерживает GCC, Clang, MSVC, локальные и удалённые кэши, многоуровневое хранение, сжатие Zstandard и статистику попаданий и промахов.
Что это
Ccache — кэш для компилятора. Он ускоряет повторную компиляцию, сохраняет результаты предыдущих запусков и определяет, когда ту же операцию можно не выполнять заново.
Инструмент работает на Linux, Windows, macOS и других Unix-подобных системах. Поддерживаются GCC, Clang, MSVC и другие совместимые компиляторы, а также C, C++, ассемблер, CUDA, Objective-C и Objective-C++.
Возможности
- локальный кэш или работа без него;
- один или несколько удалённых кэшей с пользовательскими бэкендами хранения;
- быстрые режимы, позволяющие не запускать препроцессор повторно;
- кэш inode для сокращения повторного хеширования заголовочных файлов;
- сжатие данных с помощью Zstandard;
- BLAKE3 для хеширования входных данных и XXH3 для проверки целостности кэша;
- статистика попаданий и промахов и автоматическое управление размером кэша;
- преобразование абсолютных путей в относительные для повышения числа попаданий;
- клонирование файлов и жёсткие ссылки, когда файловая система это поддерживает.
Когда пригодится
Ccache полезен в проектах с долгой компиляцией, при частых пересборках одной кодовой базы и в CI/CD, где один и тот же набор исходников собирается многократно. Удалённый кэш помогает переиспользовать результаты между рабочими станциями и агентами сборки.
Что учесть
Перед внедрением проверьте поддержку используемого компилятора и файловой системы, настройте лимит и очистку кэша и сравните процент попаданий на реальной сборке. Для удалённого хранилища отдельно продумайте доступ, скорость сети и проверку целостности данных.

