Конфигурирование Ccache....
Гость 25 апреля, 2006 - 19:56
Недавно набрал на своём компе команду emerge info, и вот что меня смутило: напротив cchache в скобочках стояло disabled. Ccache -s говорит, что в кэше 0 байт и размер 2 Гб. Насколько я понимаю это не совсем правильно, хотя могу ошибаться))) При установке системы делал как написано в хандбуке, т.е перепрописал путь в /etc/00basic. Подскажите в чём ошибка...Благодарю.
»
- Для комментирования войдите или зарегистрируйтесь
Тебя интересует
использование cache для emerge... я так понимаю...
но мне не понятно че менять в 00basic.
насколлько знаю
emerge ccache
и FEATURES="ccache"
для функционирования ccache в emerge достаточно.
что же касается статистики, то по умолчанию ccache показывает кеш юзера. Чтобы посмотреть кеш портеджей надо написать
CCACHE_DIR="/var/tmp/ccache" ccache -s
Кажется так.
Re: Тебя интересует
Using ccache for non-Portage C Compiling
If you would like to use ccache for non-Portage compilations, add /usr/lib/ccache/bin to the beginning of your PATH variable (before /usr/bin). This can be accomplished by editing /etc/env.d/00basic, which is the first environment file that defines the PATH variable:
Code Listing 9: Editing /etc/env.d/00basic
PATH="/usr/lib/ccache/bin:/opt/bin"
у меня, к примеру такой вывод
plastikman@base ~ $ CCACHE_DIR="/var/tmp/ccache" ccache -s
cache directory /var/tmp/ccache
cache hit 0
cache miss 0
files in cache 0
cache size 0 Kbytes
max cache size 976.6 Mbytes
Не то...
Using ccache for non-Portage C Compiling
ключевое слово non-Portage. поэтому наплевать и забыть... к проблеме это отношения не имеет.
ты FEATURES прописал?
У меня emerge --info говорит что ccache version 2.4 [enabled]
А статистика пуста, потому что ccache disabled.
Re: Не то...
А куда нужно прописать FEATURES, в make.conf? У меня там прописано только CCACHE_SIZE="2G"
Конечно...
man make.conf поможет тебе решить проблему.
CCACHE_SIZE это конечно хорошо, но он и по умолчанию два гига. :)
Re: Конфигурирование Ccache....
Встречал в инете описание использования ccach. Укзывалось, что при использовании имен компилятора, принятые в Gentoo, ccach не использовался. Поэтому для задействования необходимо в make.conf прописать стандартные имена, т.е. для C - gcc и C++ - g++, более точную информацию можно найти на форуме...
До включенного
До включенного кеша
# time emerge media-libs/libquicktime
real 3m59.760s
user 2m23.373s
sys 0m48.183s
с добавленными в /etc/make.conf строчками
CC=gcc
CXX=g++
FEATURES="ccache"
# emerge --info | grep ccache
ccache version 2.4 [enabled]
dev-util/ccache: 2.4-r7
FEATURES="ccache distlocks metadata-transfer sandbox sfperms strict unmerge-orphans userfetch"
Первый раз
# time emerge media-libs/libquicktime
real 3m54.492s
user 2m27.545s
sys 0m49.123s
# ccache -s
cache directory /root/.ccache
cache hit 0
cache miss 0
files in cache 0
cache size 0 Kbytes
max cache size 2.0 Gbytes
Второй раз
# time emerge media-libs/libquicktime
real 2m31.875s
user 1m5.724s
sys 0m46.707s
# ccache -s
cache directory /root/.ccache
cache hit 0
cache miss 0
files in cache 0
cache size 0 Kbytes
max cache size 2.0 Gbytes
Вроде время изменилось (по крайней мере real), но почему кеш чистый?
Quote: cache directory
Читать первый комментарий до просветления.
Во-первых, emerge
Во-первых, emerge ccache
Во-вторых, в make.conf:
FEATURES="ccache"
CCACHE_SIZE="2G"
CCACHE_DIR="/var/tmp/ccache"
CC=gcc
CXX=g++
Тогда кэширование действительно работает.
без CCACHE_SIZE CCACHE_DIR работать будет
Имхо это дублирующие переменные, для перестраховки...
первое решается CCACHE_DIR="/var/tmp/ccache" ccache -M 2g (хотя 2G значение не очевидное), а второе и так /var/tmp/ccache подефолту для portage... можно использовать, чтобы указать другую папку, например у меня "/root/.ccache", чтобы использовал умолчания ccache
к чему это я? кеширование без них будет работать... :)