Facilitating the Spread of Knowledge and Innovation in Professional Software Development

Write for InfoQ


Choose your language

InfoQ Homepage News Improvements to Visual Studio “15” Startup

Improvements to Visual Studio “15” Startup

This item in japanese

Throughout the technical preview phase of the Visual Studio “15” development process, Microsoft has stated that one of their primary goals is to improve performance.  While they have made mention of these improvements to some degree, a more comprehensive set of details has been released explaining these changes.  Today we will examine the changes made to give VS “15” a faster startup time.

Faster VS “15” Startup

Microsoft Program Manager Selma Ikiz has provided details on the areas where her team has sought to improve startup time for the VS “15” IDE itself:  the first time VS “15” is loaded after a fresh installation, the typical startup situation, and when VS “15” is being loaded after a configuration change.

For the first occasion, IDE components will now use deferred loading when possible.  Components such as the extension manager and the Managed Extensibility Framework (MEF) are loaded in parallel with the loading of the IDE with the goal of providing the developer a usable application sooner.  Based on Microsoft’s benchmarking, the team estimates a roughly 3X faster load time in VS “15” versus VS2015.

Routine startup improvements address the most common usage scenario for VS “15”: when you are just loading the application to get your daily work done.  Ikiz’s team has identified extensions to be a primary contributor to delays in Visual Studio start up times.  With VS “15”, extensions can now be loaded asynchronously.  Similarly, certain core Visual Studio services can also be loaded asynchronously.

When VS “15” identifies extensions that are slow to load, a one-time notification will be given on the IDE.  A specific dialog, “Manage Visual Studio Performance” has been added which lists any items impacting startup including extension and editor tool windows.  Extensions can be disabled while tool windows may be disabled, left as-is to follow the defaults, or auto-hid at startup.  Auto-hiding a tool window provides the opportunity for it to be opened later after startup by the user.

Lightweight Solution Load

A limited form of Lightweight Solution Load debuted in Technical Preview 4, and an improved form of it now exists in TP5.  The goal of this optional feature is to get users into a usable form of VS “15” as soon as possible.  To do this, when a solution is opened not all of the projects in that solution are loaded immediately.  Individual projects will only be loaded as needed, and many several routine tasks (code navigation and editing, and project building) will not require a project to be loaded at all. 

At present, this feature provides the biggest gains with medium-to-large managed code bases.  While nothing specifically prevents it from working with unmanaged languages like C++, not all benefits will be realized in those situations.  When an action is taken that requires a deferred project to be loaded, the Solution Explorer will inform the user that the project is being loaded via both a text message and loading icon.

Lightweight Solution Load remains an optional feature in VS “15”, and may be activated at any time.  Restarting VS “15” is not necessary for its activation/deactivation to take effect.  It can be found under the Options | Projects and Solutions dialog, where “Lightweight Solution Load (experimental)” can be marked as appropriate.

Rate this Article