java - Scons Build performance for C++ in large code base -
we have been working on our project scons build system few years. scons awesome , has improved our development process lot. there ~15000 c++ source files , project evolves source files in other languages(java/scala) added code base well. developed our own builders manage dependencies , invoke external tool(javac, scalac) build sources, works well. working on optimization of current build system , found performance difference between c++ , java build process:
environment setup: build server 24 cores, python 2.7.3, scons 2.2.0
command: scons --duplicate=soft-copy -j8
when building java code, cpu usage high observed top , spanning multiple cores: java build
however, when building c++ code, cpu usage ~4% , running on 1 core no matter how many jobs in scons: c++ build
i've been googling lot on internet not find useful. hitting gil issue in python? believe each gcc/g++ command should ran in separate sub-process javac in our own builders, there should not gil here. there workaround utilize multiple cores speeding c++ build further? in advance.
as windleewt explained in 1 of comments, cause observed behaviour ccache
installed , configured on server in question. seems of cpu usage during c++ build took compilation stage, avoided due ccache
. that's why no cpu usage several cores seen within top
.
as launched "build scratch" on server without ccache
, several cores running @ 90% 'cc1plus -o ...' expected.
no performance penalties (gil etc.) involved, , neither python nor scons degraded performance in significant way.
Comments
Post a Comment