Note: This post was co-authored with Incredibuild’s Director of Product Marketing, Yohai West.
We are pleased to announce that Visual Studio version 17.6 Preview 3 includes Incredibuild’s most advanced developer acceleration platform: Incredibuild 10. This release includes several notable, new features that empower teams to speed up the development process:
- Patent-pending Build Cache technology allows developers to cache build outputs so that they can be reused by all team members.
- A smart and flexible enterprise license management mechanism, managed via a new web-based Coordinator user interface.
- Incredibuild Cloud optimization automatically manages the best mix of on-demand and spot resources, enabling organizations to use smaller and more affordable machines, while maintaining optimal performance and cost.
In this post we’ll detail how these features can improve your daily development.
Build Cache – cache what you can; distribute the rest
Incredibuild 10’s most significant addition is its Build Cache technology. Incredibuild breaks down development processes into smaller tasks that can be executed independently, and Build Cache saves time and resources by reusing the cached outputs for previously executed tasks. Build Cache extends the incremental builds you are already likely familiar with by providing access to the outputs that your entire team has created. This means that an incremental build only has to build your changes and can rely on the cache when you have merged a teammate’s unrelated changes into yours. Additionally, temporarily working on a different branch won’t cause a large build when you switch back to your original branch.
For any task outputs that are not in the cache, the Incredibuild Grid can distribute those tasks across its pool of compute cores. The Incredibuild Grid can allocate a pool of machines to meet the needed capacity for the tasks, including on-premises machines and static and on-demand spot instances provided by Incredibuild Cloud. The machines in the grid don’t need a compiler to be installed or the code to be present, as the Incredibuild Grid takes care of it all. Once those tasks are completed and cached using Build Cache, they never have to be executed again, dramatically reducing build times for your entire team. These features working in tandem means that you can cache what you can; distribute the rest.
Build from home without impacting your speed
Working from home affects build speeds due to limited upstream bandwidth. Build Cache lets you rely more on downstream bandwidth, giving you greater speed and better performance when starting new builds. With Build Cache you can reuse previous build data stored on your local machine to dramatically reduce build times without impacting your bandwidth.
Build Cache can be deployed in different ways depending on how your Clients connect to Endpoints. A single Client can function as its own Endpoint (local), multiple Clients can connect to a single Endpoint (shared), and more complex or dynamic deployments are possible as well.
How Does Build Cache Work?
Builds are often processed in tree-like structures based on the dependencies in your code. The files in the first layer are used to create the files in the second layer, and those files are used to create the files in the next layer, and so on until the final output is produced.
As builds are processed, Incredibuild saves details of the process for future use. Each part of the process that is generated from other files is saved as a pair of input files and output files in the cache. If you run a build after changing some of the files, Build Cache can reuse cached outputs for the same inputs, to prevent parts of the process from running.
You can define if an Agent contributes to the cache or just reads from it in the Agent Settings. However, each Endpoint can only process content from one build at a time. If two builds attempt to write to the same Endpoint at once, only the content from the first build will be added to the cache.
Build Cache Summary
Details of how much time was saved from using the Build Cache is included in the output of your builds. This can be seen in the Build Monitor’s output tab, as well as the output you see in the command line.
Enabling Build Cache requires an additional license for every Initiator that is using Build Cache. Visit Incredibuild’s description of available plans in order to obtain Build Cache licenses.
Smart licenses managed via the new Coordinator UI
Incredibuild 10’s smart licenses let you be truly efficient with the resources you have. Instead of locking licenses onto devices that don’t always need them, you can allocate cores and initiators to the right place, at the right time. More importantly, you can work in any environment—on-premises, cloud, or hybrid. With Incredibuild 10’s new Coordinator UI, you can also gain better visibility into how your licenses are being used, where there are gaps, and how you can better deploy cores to avoid those gaps.
Scale to the cloud
Whether you are fully building in the cloud or bursting when needed, Incredibuild Cloud automatically spins up and down the best mix of on-demand and spot instances. With Incredibuild 10 you get more visibility with the Incredibuild Cloud license. Reporting gives you easy access to license consumption, lets you see how many cores are available from your purchase, and get license status updates and predictions all in one place.
Incredibuild is a crucial part of the development process for many of their users, including many of the leading game development studios and companies delivering software for large enterprises. Game studios can have large codebases for their titles and can have dozens of employees working on different aspects of a title, from game engine developers and networking developers, to level designers and artists. With so many changes constantly going into their products, Incredibuild’s acceleration technologies make a real difference to delivering a project on time and on budget.
Incredibuild absolutely impacts our ability to iterate and move forward. We couldn’t do anything without it.
– Joe Vogt, IT Manager, The Coalition
The ability of the Incredibuild Cloud helpers to tear themselves down when they’re not being used helps cuts costs in Azure, and the improved build times and test times significantly improve our developers’ ability to get their work done faster.
– Chad Shaffer, Senior Software Development System Engineer, Minitab
Long C++ builds are not something you should take as a given. If you do not use any build acceleration tool, we highly recommend that you try Incredibuild, with its direct integration inside Visual Studio, Incredibuild 10 brings with it some major improvements, the most significant being the Build Cache that works together with the distribution engine. The new license model as well as other new features make this version something you should check if you haven’t done so already.
For a full product walkthrough, watch Incredibuild’s CppCon 2022 demo session.
Try it and Talk to Us
We encourage you to download Visual Studio 2022 version 17.6 Preview 3 and try out Incredibuild 10. You can use the Visual Studio Installer to install Incredibuild. Just select any of the following workloads: Desktop development with C++, Mobile development with C++, or Game development with C++. Then check the box for Incredibuild – Build Acceleration in the installation details and complete the installation. There is now a free-forever license for 2 developers (free version does not include a Build Cache license), so it’s super easy to install and to start using it for your projects.
We can be reached via the comments below or via email at firstname.lastname@example.org. If you encounter other problems with Visual Studio or have other suggestions, you can use the Report a Problem tool in Visual Studio or head over to the Visual Studio Developer Community. Suggestions for or problems with Incredibuild can be sent directly to them. You can also find us on Twitter (@VisualC and @incredibuild).