ccache

Материал из Википедии — свободной энциклопедии
Перейти к: навигация, поиск
ccache
Ccache3.png
ccache 3.1.6 в среде Gentoo Linux
Тип

кэш компилятора

Разработчик

Эндрю Триджелл

Операционная система

Unix-like

Аппаратная платформа

кроссплатформенное ПО

Последняя версия

3.1.9 (06 января 2013)

Лицензия

GNU GPL

Сайт

http://ccache.samba.org/

ссache (от англ. compiler cache; произносится «сикэш») — кэш компиляторов языка С и С++ для Linux и других Unix-подобных систем.

Использование ссache может значительно ускорить сборку некоторых пакетов или проектов, которые компилируются несколько раз, так как заново компилироваться будут только файлы, которые изменились с последней компиляции.

Принцип работы[править | править вики-текст]

При компилировании какого-либо файла вычисляется его хэш и, если такой файл уже присутствует в реестре скомпилированных файлов, то он не будет компилироваться заново, а будет использоваться старый бинарный файл. Это может ускорить сборку некоторых пакетов в 5—10 раз.

При этом учитываются разные версии компилятора и опции сборки. Это означает, что, если вы однажды собрали проект с оптимизацией -О2, использовав при этом ссache, то при сборке с оптимизацией -О3 файл будет компилироваться заново, при этом в реестре ссache старый файл сохранится, но добавится и новый.

Неправильно скомпилированные файлы[править | править вики-текст]

Если какой-либо файл будет единожды скомпилирован неправильно, то при повторном компилировании без изменений параметров он не будет исправлен. Этого можно избежать, удалив файлы из кэша. Директория, где хранится кэш по умолчанию — $homedir/.ccache/. Для очистки необходимо удалить все файлы, так как они сортированы по хешу из исходных файлов для более быстрого поиска и искомый файл невозможно отличить от других. Это можно сделать командой ccache -C.

Близкие проекты[править | править вики-текст]

сcache активно используется в Gentoo и других source-based дистрибутивах:

Для ускорения сборки пакетов также существует Distcc.

Ссылки[править | править вики-текст]