This is the 2nd post in a five-part series covering performance improvements for Visual Studio “15”.
Yesterday Selma shared some of the ways we have made Visual Studio “15” startup quicker than ever. Today, I will talk about a new feature in Visual Studio “15” called lightweight Solution load. This feature significantly reduces Solution load time so you can be more productive, faster in the IDE.
Lightweight Solution Load
At a high level, when lightweight Solution load is enabled, Visual Studio will not fully load projects until you start working with them. Many common tasks, such as navigating through your codebase, editing code, and building your projects will not require any projects to be loaded at all.
We released lightweight Solution load in a limited capacity in Visual Studio “15” Preview 4, to gain some real world insight about how it works with your projects. So far, these performance improvements have been promising:
In our limited roll out of this feature, we have seen Solution load time cut as much as two to four times.
The end goal of this feature is all about allowing you to get productive in the IDE as quickly as possible. Developers using lightweight Solution load were able to begin navigating through and building their code one to two minutes faster. We expect similar results in Preview 5 with the broader release of the feature.
Try it Out
Lightweight Solution load is not enabled by default in Preview 5, but we would like to encourage any developers with medium to large, managed Solutions to try the feature out and give feedback. To turn on lightweight Solution load, navigate to Tools->Options, Projects and Solutions->General and check the “Lightweight Solution load” setting at the bottom of the page:
Once lightweight Solution load is enabled, you can open and work with your projects and Solutions as usual. The setting will take effect the next time you load a Solution; restarting the IDE is not necessary.
Lightweight Solution load focuses on managed projects in Preview 5. If you work with medium to large C# or VB Solutions, we strongly encourage you to try out this feature. You can open mixed Solutions with C++ or other project types too – but keep in mind, not all of the performance enhancements are available yet for other types of projects (more details below*).
Once lightweight Solution is turned on, you can more or less go about your business as usual – just a little faster. A few things in particular to try out:
- Navigate across your codebase with Navigate To (Ctrl+,), Go to Definition (F12), Find in Files, or Find all References.
- Refactor or inline rename.
- Build or debug your Solution.
You may notice that some operations take a brief moment to load project data in the background:
Keep in mind, lightweight Solution load is still experimental, so there are still a few rough edges:
- If a feature related to a project seems to be missing from the IDE, try expanding that project in the Solution Explorer. Please let us know if anything doesn’t seem to be working as expected.
- NuGet package restore isn’t yet integrated with lightweight Solution load. We recommend restoring packages before turning on the feature or using the command line.
- The Test Explorer will not see tests unless a project is fully loaded.
- If you need to retarget or upgrade all projects in a Solution, disable Lightweight Solution load for best results.
*Even though the focus of lightweight Solution load is managed projects in Preview 5, don’t worry if you are a C++ developer. There are plenty of performance improvements coming your way in Preview 5 as well – check out part four of this series on Thursday for more details. These improvements will be integrated into lightweight Solution load in a future release.
Send Us Feedback!
We would love to hear feedback about your experiences using lightweight Solution load. If you run into any issues you can use the “Report a Problem” tool in the upper right hand corner of the IDE to let us know. For performance issues, such as the IDE loading slowly or becoming non-responsive, please report issues to us using the Report-a-problem tool. This guide links to a tool that will automatically collect the traces and other assets we need to diagnose performance issues.
If you work with large codebases and are interested in sharing feedback with us about your experiences, please consider filling out this brief survey with your contact information and a few details about the type of development you do. Your feedback helps us deliver the best development experience possible.
|Will Buik – Program Manager, Visual Studio IDE Project and Build
Will is a long time user of Visual Studio. Since his foray into programing with Visual Basic 4, he has loved programming, software development, and hardware hacking. He loves working on the development tools that he has leveraged for many years.