Могу ли я заставить npm/gyp использовать ccache?

ccache — это фантастический способ ускорить создание двоичных файлов C, которые вы уже создали ранее, путем кэширования результатов. (Еще один отличный инструмент — distcc, который передает код на другие машины для параллельной компиляции!)

Можно ли заставить npm использовать ccache при сборке файлов C с использованием gyp?

Вот способ проверить:

$ time npm install mmmagic
...
npm install mmmagic  103.83s user 9.06s system 100% cpu 1:51.84 total

$ rm -rf node_modules/mmmagic

$ time npm install mmmagic
...
npm install mmmagic  103.48s user 8.59s system 102% cpu 1:48.87 total

Если мы сможем использовать ccache, со второй попытки это должно быть значительно быстрее.

Другой способ узнать, вызывается ли ccache и помогает ли это, — запустить это в отдельном терминале, пока идет сборка:

$ watch -d ccache -s

Это отобразит текущее обновление статистики ccache.


person joeytwiddle    schedule 05.08.2014    source источник


Ответы (1)


Вы должны быть в состоянии сделать это, правильно установив переменные среды. Для компилятора C: export CC="ccache gcc" (или export CC="ccache clang") должно работать нормально.

person Mathiasdm    schedule 14.08.2014
comment
Спасибо, дело пошло! - person joeytwiddle; 14.08.2014
comment
Я также собираюсь export CXX="ccache g++" на случай, если это понадобится для пакета в будущем. - person joeytwiddle; 14.08.2014
comment
FWIW, вот и последний раз: npm install mmmagic 6.56s user 3.14s system 93% cpu 10.377 total :) - person joeytwiddle; 14.08.2014
comment
Красиво :-) Рад, что помог! - person Mathiasdm; 15.08.2014