4 ms·
I suppose I should've provided more context. My build usually takes a few minutes only during the day, as the changes are small and they are broken into multipl
by b1gtuna 7y ago
I suppose I should've provided more context. My build usually takes a few minutes only during the day, as the changes are small and they are broken into multiple packages / units. Once or twice a week, some changes trigger chain reaction and takes 4+ hours to build. This is painful because it eats up chunk of my productivity. And perhaps once a week, I build from scratch just to prove everything still can be built from scratch.
- DoofusOfDeath 7y agoJust in case you aren't aware of it, "ccache" helps with this, and you might find it trustworthy enough for your typical weekly rebuild.
- matthewaveryusa 7y agoccache has been huge for me -- can't recommend it enough. The next big win for me was externing common templates into its own translation unit: http://gameangst.com/?p=246 http://gameangst.com/?p=246 It's a cool little trick few people seem to know.
- umvi 7y agoI read the article, but I'm still a little confused. Do you put common std templates into their own translation unit, or are you putting only your own user-defined templates into their own translation unit?
- matthewaveryusa 7y agoBoth, although most of the heavy ones in my projects are from the application-layer/user-defined. having strings with common vector/map/unordered_map/set/unordered_set template specializations help a bit (i.e basic_string<char>, uint64_t int64_t, int and uint) My methodology wasn't very scientific: when I found a template being specialized at a low-level, I added it to my list. another heuristic is anything that templates off of std::string (basic_string<char>), char, uint64_t int64_t, int and uint are all pretty good candidates as the likelyhood of them being reused everywhere is high.
- umvi 7y agoAre you building like FPGA bitstreams or something? 4 hours seems insanely long for software unless it is literally millions upon millions of lines of code
- jandrese 7y agoMaybe he #included boost.
- gnulinux 7y agoMaybe it's an aggressively optimizing and correctness-checking C++ compiler. GCC, clang can take a long time depending on complexity of code and flags provided.
- b1gtuna 7y agoI've built bitstreams, but these days I build software for consumer electronics with screens running ARM Linux.