Facilitating the Spread of Knowledge and Innovation in Professional Software Development

Write for InfoQ


Choose your language

InfoQ Homepage News Visual Studio 15 Improves C++ Project Loading

Visual Studio 15 Improves C++ Project Loading

As we continue our review of the performance improvements that are part of Visual Studio 15, today we will take a look at some new functionality that should help C++ developers.  This new feature is C++ specific and is called Faster Project Load (FPL).  As we have discussed, VS15 has a new feature called Lightweight Solution Load, but this is of limited benefit to pure C++ solutions.  FPL is designed to make VS15 faster when working with larger C++ projects.

When a solution is opened in Visual Studio, time and memory is spent evaluating all of the projects within it.  Build information for each project is generated and millions of objects are created to describe the solution.  As you can imagine, this leads to memory and performance constraints.  With VS15 Technical Preview 5, a new SQLite database backed layer has been added and allows the program to retrieve information about a solution on-demand, rather than all at once at start-up.

At present, FPL is still very experimental, and its presence in TP5 seems to function more as a proof of concept than something ready for production use.  Microsoft’s Ankit Asthana provides the following list of known limitations found with FPL:

  1. Any projects that need upgrading (from prior versions of Visual Studio) should be upgraded prior to enabling FPL.
  2. Importantly, building a solution is not supported.
  3. Since information is being loaded on-demand in some cases changes to a large project may take an additional time to load.
  4. Any plugins that examine the entire solution hierarchy would effectively negate the benefits brought by FPL.

FPL is currently separate and distinct from Lightweight Solution Load.  A future Release Candidate build of VS15 is intended to combine both FPL and the Lightweight Solution Load into a single performance improvement.  At present, FPL can be enabled on TP5 through Options | C/C++ | Experimental and marking “Enable Faster Project Load” to true.

Rate this Article