4 ms·
One obvious answer is parallel builds. It's an immense waste of developer productivity to force builds on developer machines.
by pradn 8y ago
One obvious answer is parallel builds. It's an immense waste of developer productivity to force builds on developer machines.
- vbezhenar 8y agoNot just builds but running tests as well. Actually I think I've heard that Google does exactly that (and caches compilation results, so they could just return them if they are ready).
- smueller1234 8y agoGoogle's build and test execution infrastructure is both huge in size and absolutely amazing. One of the biggest positive surprises for me when I had my technical onboarding period.
- adrianhel 8y agoFeel free to tell us more about it! :)
- mochomocha 8y agoRecent article: https://queue.acm.org/detail.cfm?id=3287302 https://queue.acm.org/detail.cfm?id=3287302
- smueller1234 8y agoThank you, I hadn't realized that was out there!
- danbolt 8y agoIn a lot of C++ game development this is a huge factor for productivity, especially since a lot of translation units may need to be touched when changing APIs. Being able to utilize an entire idle office for each .cpp file can make a big difference in build times.
- mikepurvis 8y agoMost places doing any non-trivial C++ development will have a centralized distcc and ccache cluster, surely?
- danbolt 8y agoMost C++ shops I've worked at use MSVC and Incredibuild, so yes! I think MSVC is the norm in game development, especially for PC games, but I could be wrong on that.
- chrisseaton 8y agoI think the bottleneck there is actually memory. When building LLVM I run out of system memory before I run out of cores.
- Macha 8y agoAt sufficient speed too. A build on our build farm takes 2 hours, my local mac does it in 50 minutes.
- creatornator 8y agoAm I reading this right that a build farm is slower than your local development computer? Shouldn't that launch a re-evaluation of the build farm?