Use All your machine power to improve productivity
Have you seen that few humans work too much and other just sit and do nothing? We call this injustice in Human world but what if we see same patterns in Machin world as well.
Most of the start up starts with smaller code base but when they become successful, their code base grows bigger and bigger by each passing year because of new features and security aspects of the code which is equally bigger chunk as main source code logic. Biggest challenge with huge code base is to maintain code base and any change needs to go with build cycles, Static Code analysis and unit test framework which sometime goes in hours and in extreme cases in days.
Imagine that you wants to do one line change and kick start build and testing cycle and after one day you come to know that your code change didn’t work, you need to change code again and anxiously wait for one more day before you know if you got success or not.
When you review this situation, you realized that even though your build machine is working very hard to complete build, there are many machines on network are running idle. Only solution to this problem is to distribute builds to other machines in network which are not loaded with other tasks. There are many ways to do that as some build command allows you to use all the cores available on machine with -j options.
You can use free aware like Distcc or commercial tools like Incredibuild to speed up your build time so you can complete not only build but Static Code analysis, Unit testing and other sanity checks for each code changes to improve your product quality even in complex embedded systems.
distcc is a program to distribute builds of C, C++, Objective C/ C++ across several machines on a network. distcc can create the same results as a local build and it very is simple to install and use and can improve build time. distcc does not require all machines to share a filesystem, or have synchronized clocks, or to have the same libraries or header files installed. They can even have different processors or operating systems, if cross-compilers are installed.
Incredibuild turbocharges compilation, tests, and other compute-intensive software development pipeline workloads. The magic happens by seamlessly and concurrently distributing processes across idle CPUs in your local network or the cloud, while transparently emulating your local environment on remote machines. Basically, our tech transforms each compute host into a supercomputer with hundreds of cores and gigs of memory. The end-result: Radically shorter compute times for almost any workload, using the same code, same processes and tools your team uses now.
If you are already running DevOps or planning to make DevOps pipeline, consider using existing machine power which will come handy creating faster and effective pipelines without adding too much cost.