недостатки ccache - PullRequest
       41

недостатки ccache

5 голосов
/ 18 декабря 2011

Я использую ccache для экспериментов, но я не совсем уверен, что мне следует это использовать. Может кто-нибудь объяснить ситуацию, когда ccache может привести к неправильному поведению. Или мы всегда должны использовать ccache? Любой, кто получил, что ccache производит неправильные объектные файлы или изменения в заголовочных файлах не рассматриваются?

Ответы [ 3 ]

9 голосов
/ 19 декабря 2011

У меня практически никогда не было проблем при использовании ccache.Иногда (например, раз в месяц или даже реже) я полностью очищаю его кеш ccache -C.

У меня больше проблем со сложным Makefile -s, чем с ccache.

Короче, не беспокойтесь, а когда вы что-то подозреваете, просто запуститеccache -C.

Очевидно, что вам следует избегать ccache, когда вы измеряете время компиляции.(Вы можете передать -time или -ftime-report на gcc или g++ в этом случае).

Дополнения

По моему мнению, ccache должен быть как минимум настраиваемым дляотключите кеширование для компиляции с использованием плагинов GCC, потому что плагин GCC может делать все, что угодно (например, запрашивать базу данных или веб-сервис), что невозможно кэшировать.См это сообщение .

4 голосов
/ 19 декабря 2011

Вы правильно сформулировали свой вопрос, задав неправильное поведение .

Неправильное поведение ccache может замедлить компиляцию, если используется неправильно. ccache должен сканировать файл, чтобы распознать прошлые компиляции, поэтому фактическая компиляция через ccache выполняется медленнее, чем без нее. Только попадание в кеш быстрее.

ccache полезен, когда вы часто перекомпилируете один и тот же код без его изменения. Это не ускорит компиляцию нового или измененного кода.

3 голосов
/ 19 декабря 2011

У меня когда-то были проблемы с компиляцией SCons через ccache (метод symlink).

Настройки среды

Оказалось, что ccache требует переменную $ HOME, которая должна быть установленаокружение, тогда как SCons не устанавливает его по умолчанию (SCons имеет политику изоляции сборок от среды настолько, насколько это возможно по умолчанию).

Я не совсем уверен, будет ли это рассматриваться как проблемаccache или просто взаимодействие с SCons.Помимо этой причуды, у меня никогда не было проблем с ccache.

Износ SSD

Я принял привычку связывать ~ / .ccache с tmpfs, чтобы избежать ненужного ношения моих SSD.Очевидно, что это не проблема ccache, потому что без него все было бы еще хуже.( Просто что-то иметь в виду )

...