Build performance and optimization is an important part of the computer software development process. Apart from affecting the build speed (after all, reducing compilation time is one of our specialties), there are other factors that can be coaxed in order to optimize the build, making it run as smoothly and effortless as possible. That is why we created the Build Monitor, positioning our solution as a build optimization hub. You see, it’s not just speed that we’re offering – it’s also a boost to the build performance. But it should be used properly.
In this blog post we want to give you some tips and tricks to optimize your build monitor. But first, a recap of what the build monitor is.
The build monitor, as the name suggests, monitors your build performance visually. It replaces your old text output with an intuitive graphic UI, lets you view a recording of your build, and allows you to share the results with your team members so they could replay it, too. In addition, a progress display showing your build results in colorful bars is available for your review, and if you want to view the old text output, it’s available as well. A projects display is offered to distinguish between each project/configuration’s standard output from the executed tools, including warning and error messages. And last but not least, a Summary display is presented allowing you to get a high-level overview of all the information and statistics on the current build – all in one place.
Even though the build monitor is a very intuitive interface, there are tips and tricks to gain even better visibility into your build. So, without further ado, let’s jump right in.
- Connectivity issues – Connectivity needs to be stable. The red line in the image below indicates connectivity issues. Be sure you check your connectivity.
- Bandwidth issues – we recommend having 1000 Mbps.
Try to always use LAN and avoid using WIFI. Reduce VPN use as much as possible or contact your Customer Success Manager to learn how to better set it up when working from home.
- Remote bars – If the remote bars are consistently and significantly longer than local ones, this might be related to low bandwidth.When the remote bars are a 20-30% longer than the local ones, try reducing the load on the initiator machine. Change settings and reduce the CPU cores utilization for initiator.
- Ports – If the build is not distributing, it might be related to the ports. Review the settings and make sure that you are using the recommended ones.
- Dependencies – Recognize a build that has gaps due to dependencies. This is a normal situation. However, if a build has gaps with no dependencies, you’ll need to investigate the reason. Feel free to contact the Customer Success manager to assist you with the investigation.
Gaps with dependencies
- Ready and Active tasks – Keep a balance between Ready Tasks and Active Tasks. These two indicators will be your main ally to ensure that you have the right amount of helpers in place. If you have the right number of helpers but they are not being used, please contact your Customer Success Manager.
- Predictive execution – Use predictive execution correctly to optimize the build, even when using it as standalone (on one machine). Predictive execution executes serial tasks in parallel, even while working on one machine.
- Preparing build task – If you see a long “preparing build task” bar, please contact your Customer Success Manager. This might be related to a simple settings change.
- Available helpers – If you are not utilizing all the available helpers and you see ready tasks not being distributed, contact your Customer Success Manager who will assist you in changing the settings and optimizing it.
Hopefully, the above tips will help you optimize your build performance. Build optimization is an art that should be mastered, and the Build Monitor is an important tool to help you do just that. We take great pride in this tool and believe it’s your best ally when it comes to build optimization. We invite you to use it and contact us with any questions you might have.