Draft: Reduce compilation time of OAI using ccache
With ccache, the first time that the project is compiled, values are cached and reused in later builds. https://github.com/ccache/ccache
Example in 11th Gen Intel(R) Core(TM) i7-1165G7 @ 2.80GHz
time ./build_oai -c -C -w USRP --gNB --nrUE -P --ninja
real 13m17,521s
user 76m42,045s
sys 24m32,718s
Second time:
time ./build_oai -c -C -w USRP --gNB --nrUE -P --ninja
real 1m8,979s
user 3m16,003s
sys 0m51,521s
It also works if you change branches.
With the linker is more subtle, but it will link faster, specially when only one file is changed and recompiled using directly the make/ninja command. Some data on linkers:
https://github.com/rui314/mold
Note that (I think) that OAI cannot use mold due to licensing.
There are more tricks to accelerate the compilation time, but this two are fairly easy and all the people will certainly benefit. The largest potential is probably in the CI.
PS: Don't expect to see the same results as in my computer in all the builds/hardware platforms. A more realistic number will probably be 5x.