ccache- это кешируещий препроцессор исходников. Основная идея состоит в том, чтобы выяснить, не собираемся ли мы компилировать тот же самый код снова, и если да, то просто воспользоваться уже сгенерированным кодом и, таким образом, сэкономить кучу времени. Уверяют, что часто компиляция осуществляется в 5-10 раз быстрее. Вот тут написано за счет чего это достигается.
Народ, кто пользуется distcc, очень активно интересовался, а будет ли distcc работать в паре с ccache? Ответ был дан такой: да, но только в простом (не-pump) режиме. Поскольку, pump меня не устраивает, я решил попробовать, а вдруг что-нибудь путное получится из использования ccache?
Развитие ccache остановилось пять лет назад, поэтому последнюю версию можно ставить из репозитариев. Не знаю в чем дело, но на моей машине после этого слетели настройки рендеринга шрифтов, так что осторожнее с этой командой:
$ sudo apt-get install ccache
Update: После переустановки Ubuntu , я сначала поставил все GNOME приложения, ccache, и только после это библиотеки и приложенияKDE. Может быть дело было именно в порядке установки, но теперь со шрифтами все нормально.
Использование ccache простое- вместо просто make надо делать
$ make 'CC=ccache gcc'
Если есть желание подружить его с distcc, то в установке distcc ничего менять не надо, а собирать надо так:
$ make -j40 'CC=ccache distcc gcc'
Я проверял, как всегда, на vim 7.2. Существенная разница есть между временем компиляции просто make и с использованием ccache:
Make без ccache и distcc- 2 мин 17 сек.
С использованием ccache без distcc- 1 мин 57 сек.
С использованием distcc без ccache, только на сервере- 1 мин 51 сек.
С использованием distcc без ccache, на localhost и сервере- 1 мин 10 сек.
С использованием ccache и distcc, на localhost и сервере- 1 мин 10 сек.
Отсутствие выиграша по времени в последним случае можно объяснить медленным процессором, который выполняет ccache и даже небольшим размером проекта vim. Но, с учетом проблем со шрифтами, желание работать с ccache отпало.
Существует похожий проект cachecc1, ориентированный только на gcc. Из статистики, приведенной на оффсайте следует, что cachecc1 в целом дает лучшие результаты, чем ccache, иногда превосходя его в разы по времени компиляции. Будем копать.
среда, 5 августа 2009 г.
Подписаться на:
Комментарии к сообщению (Atom)
Комментариев нет:
Отправить комментарий