← Все инструменты Разработка / инструмент

Ccache

Ccache — кэш для компилятора, который ускоряет повторные сборки, переиспользуя результаты предыдущих компиляций. Он поддерживает GCC, Clang, MSVC, локальные и удалённые кэши, многоуровневое хранение, сжатие Zstandard и статистику попаданий и промахов.

cachedev

Что это

Ccache — кэш для компилятора. Он ускоряет повторную компиляцию, сохраняет результаты предыдущих запусков и определяет, когда ту же операцию можно не выполнять заново.

Инструмент работает на Linux, Windows, macOS и других Unix-подобных системах. Поддерживаются GCC, Clang, MSVC и другие совместимые компиляторы, а также C, C++, ассемблер, CUDA, Objective-C и Objective-C++.

Возможности

  • локальный кэш или работа без него;
  • один или несколько удалённых кэшей с пользовательскими бэкендами хранения;
  • быстрые режимы, позволяющие не запускать препроцессор повторно;
  • кэш inode для сокращения повторного хеширования заголовочных файлов;
  • сжатие данных с помощью Zstandard;
  • BLAKE3 для хеширования входных данных и XXH3 для проверки целостности кэша;
  • статистика попаданий и промахов и автоматическое управление размером кэша;
  • преобразование абсолютных путей в относительные для повышения числа попаданий;
  • клонирование файлов и жёсткие ссылки, когда файловая система это поддерживает.

Когда пригодится

Ccache полезен в проектах с долгой компиляцией, при частых пересборках одной кодовой базы и в CI/CD, где один и тот же набор исходников собирается многократно. Удалённый кэш помогает переиспользовать результаты между рабочими станциями и агентами сборки.

Что учесть

Перед внедрением проверьте поддержку используемого компилятора и файловой системы, настройте лимит и очистку кэша и сравните процент попаданий на реальной сборке. Для удалённого хранилища отдельно продумайте доступ, скорость сети и проверку целостности данных.