Our Blogs

Visual Studio 15 enhances C++ project loading capabilities

October 29, 2016
Visual Studio 15 rapidly improves C++ project loading with the help of a new feature called Faster Project Load (FPL). This feature is specific to C++. However. Visual Studio 15 also ships with a new feature named Lightweight Solution Load. However, this is of limited benefit to pure C++ implementation and solutions.

According to sources, the Faster Project Load is designed to load Visual Studio 15 in an improved way when working with larger C++ projects. As soon as you open a solution in Visual Studio, huge amount of work is needed to evaluate all the projects.

You will be able to view build information for each project. They will be generated and nearly millions of objects are fetched to configure and explain the solution. However, this work requires huge amount of memory and performance constraints.

With the help of  Visual Studio 15 Technical Preview 5, a SQLite database backed layer has been newly added. This will enable the program to fetch information about a solution on-demand. This mechanism will avoid the information retrieval all at once.

Even though the Faster Project Load is still in its infancy stage, the very presence in VS TP 5 looks promising. It will serve as a proof of concept instead of something which is ready for production use.

Ankit Asthana of Microsoft has clearly pointed out four limitations which is found in the TPL. According to Asthana, any projects that need enhancements should be upgraded prior to enabling FPL. Moreover, solution building is not supported and plugins that directly examine the solution would get benefits of FPL.

As of writing this, Faster Project Load is currently separate from Lightweight Solution Load. There are reports that a future release candidate build of VS15 is mainly oriented to mix both FPL and the Lightweight Solution Load into a single performance improvement. 

You can enable FPL on Visual Studio 15 by navigating to  Options | C/C++ | Experimental and enabling Enable Faster Project Load to true.