ccache
| ccache | |
ccache 3.1.6 в среде Gentoo Linux |
|
| Тип |
кэш компилятора |
|---|---|
| Разработчик | |
| Операционная система | |
| Аппаратная платформа | |
| Последняя версия |
3.1.6 (21 августа 2011) |
| Лицензия | |
| Сайт | |
ссache (от англ. compiler cache; произносится «сикэш») — кэш компиляторов языка С и С++ для Linux и других Unix-подобных систем.
Использование ссache может значительно ускорить сборку некоторых пакетов или проектов, которые компилируются несколько раз, так как заново компилироваться будут только файлы, которые изменились с последней компиляции.
Содержание |
[править] Принцип работы
При компилировании какого-либо файла вычисляется его хэш и, если такой файл уже присутствует в реестре скомпилированных файлов, то он не будет компилироваться заново, а будет использоваться старый бинарный файл. Это может ускорить сборку некоторых пакетов в 5—10 раз.
При этом учитываются разные версии компилятора и опции сборки. Это означает, что, если вы однажды собрали проект с оптимизацией -О2, использовав при этом ссache, то при сборке с оптимизацией -О3 файл будет компилироваться заново, при этом в реестре ссache старый файл сохранится, но добавится и новый.
[править] Неправильно скомпилированные файлы
Если какой-либо файл будет единожды скомпилирован неправильно, то при повторном компилировании без изменений параметров он не будет исправлен. Этого можно избежать, удалив файлы из кэша. Директория, где хранится кэш по умолчанию — $homedir/.ccache/. Для очистки необходимо удалить все файлы, так как они сортированы по хешу из исходных файлов для более быстрого поиска и искомый файл невозможно отличить от других. Это можно сделать командой ccache -C.
[править] Близкие проекты
сcache активно используется в Gentoo и других source-based дистрибутивах:
Для ускорения сборки пакетов также существует Distcc.