Performance Improvements in Visual Studio 2019

Varun Gupta

Varun

Performance has been a big focus area for Visual Studio 2019, with improvements in many areas, including:

  • Faster Visual Studio startup
  • Faster branch switching experience in Visual Studio
  • C++ open folder – time to IntelliSense improvements
  • Faster C++ compiler build times
  • Faster debug stepping
  • Debug extra large C++ codebases
  • Faster installation updates

Faster and clean startup

Something you’ll notice when you open Visual Studio 2019 is its new start window. The new start window is much faster than Visual Studio 2017’s start window and has been designed to present you with several options to get you to code quickly. In addition, starting with Visual Studio 2019 version 16.1, Visual Studio blocks synchronously autoloaded extensions to improve startup and solution load times. This allows you to get to your code faster.

Visual Studio 2019 Start Window
Visual Studio 2019 Start Window

Faster branch switching experience

When working with Git, part of the usual workflow is to create and work on code branches. The branch switching experience has been completely redesigned over the last 6 months. Starting with Visual Studio 2017 update 15.8, the IDE does not completely unload and reload the solution during branch switches (unless large number of projects are updated as part of the branch switching operation).
To avoid context switching between the IDE and the Git command line, Visual Studio 2019 now provides an integrated branch switching experience that allows you to “stash” any uncommitted changes during the branch switch operation. You no longer need to go outside of the IDE to stash your changes before switching branches in Visual Studio.

Faster Visual Studio 2019 Git Branch Switching
Visual Studio 2019 Git Branch Switching Experience

Faster debugger stepping

Since large part of the development cycle includes stepping through and debugging code, we have worked to bring several improvements to the debugger performance.  Stepping through your code is over 50% faster in Visual Studio 2019 versus 2017.  The Watch, Autos, and Locals windows are 70% faster. Moreover, since most debugger-related windows (i.e. watch window, call stack window, etc.) are now asynchronous, you can now interact with one window in Visual Studio while waiting for information to load in another.

Faster Visual Studio 2019 Debugger Stepping
Visual Studio 2019 Debugger Stepping

Debug very large C++ codebases

Visual Studio 2019 introduces an improved debugger for C++ that uses an external 64-bit process for hosting its memory-intensive components. If you’ve experienced memory-related issues while debugging large C++ applications before, these issues should now be resolved with Visual Studio 2019. You can read how the new external debug process has addressed the current issues in our Gears of War case study.

Visual Studio 2019 Debug Large Coderbases GoW Demo
Visual Studio 2019 Debug Large Coderbases GoW Demo

Indexing and IntelliSense performance in C++ CMake Projects

The indexing is now significantly faster for code opened via Open folder, and, as a result, IntelliSense is available considerably faster, when compared to Visual Studio 2017. As an example, in the LLVM codebase, IntelliSense becomes available 2 times faster in Visual Studio 2019. Additionally, a new indexing algorithm lights up IntelliSense incrementally while the folder is being indexed, so you don’t need to wait for the entire folder to be indexed before you can be productive with your code.

Visual Studio 2019 Faster Indexing and IntelliSense
Visual Studio 2019 Indexing and IntelliSense for C++ CMake LLVM Repository

Faster C++ Build Linker time is 2x faster

C++ builds have been made faster with improvements in the C++ linker. For example, we see over 2x faster build linker times for an Unreal Engine-based AAA game.

Visual Studio 2019 Faster Build Linker time
Visual Studio 2019 Faster Build Linker time

Faster installation of Visual Studio updates

With the introduction of background downloads for updates in 16.0, you can continue working on your code for a longer time, while the update downloads in the background. At the end of the download, once the update is ready for installation, you will get a notification to let you know that you’re good to go. Using this approach, the update installation time for Visual Studio 2019 updates have decreased significantly.

Try Visual Studio 2019 and let us know

We welcome you to try Visual Studio 2019 either with your own projects or with Roslyn Compilers projects we used as examples above and see how it compares to Visual Studio 2017 for your scenarios. We are always looking for more feedback to know which improvements are working for you, which ones are not and which areas we should focus on next.

If you are seeing performance issues, please send us feedback through Visual Studio’s Report a Problem tool that you can access from Help -> Send Feedback -> Report a problem. This tool will ensure that we have the right set of data to help us analyze the issue.

Varun Gupta
Varun Gupta

Program Manager, Cloud and Enterprise

Follow Varun   

58 Comments
Avatar
Chuck Ryan 2019-05-30 13:44:12
Unfortunately the new Start Window has only cost me time so far as I keep having to show our other deveopers how to turn it off when they start complaining about it opening every time they close a solution. I am not sure I want to know who there thought that was a good idea. But at least I am now saving some time by using Extension Manager to export my default extension list (big thanks to Mads for that). I sent out a new one that adds the extension that replaces the new New Project Dialog with the 2017 New Project Dialog and, other than the occasional cheering, have been able to work in peace today.
Avatar
Darren Talbot 2019-05-30 23:07:11
I agree. New start window is a barrier to Visual Studio for me.  i just turned if off and now just make use of my recents menu.  Not as easy as the old start page but much less annoying than the start window.  I really don't see why we have to have one or the other. Why can we not choose the workflow that suits us.  I'm tired of having these decisions forced on me. Visual Studio gets more annoying at each release for me as I have to relearn new ways to do things I already did.
Avatar
Erwin Beckers 2019-05-30 23:39:14
In our company we've been using VS2019 for a while now.. and sorry to say.. its sluggish like hell.. (Then again... so is VS2017.. but VS2019 is even worse) - very often there's seconds delay when trying to type something..  - intellisense is a real performance killer.. try opening and editting an angular app.. We just switched to VSCode for anything related with typescript and HTML - live unit testing.. useless and crashes a lot - keep getting these yellow boxes in the top that even VS2019 thinks its slow - Seems like communication with azure devops (pulls, syncs, changes,...) gets slower every release - And.. did you guys at Microsoft noticed we live in 2019? We build 64bit apps these days. When will we see a 64bit version of visual studio ?
Avatar
André Ziegler 2019-05-30 23:55:40
new Start Window, the new "new Project" Dialog are horrible and block effective usage. We will never update to VS2019 and so avoid .net core 3.0/.net 5. If Microsoft tells "f*ck you customers" we can do the same and ignore this company . VS2019 = Windows8/VS2012, unusable at all.
Avatar
Tobias Käs 2019-05-31 01:10:47
The new start screen doesn't have the right filters. How can I find project templates by technology (WPF, WinForms, etc.) ? This was clear and discoverable in the old tree based system because WinForms, WPF, Asp.NET etc. all had subtrees with their project types in them. In the new start menu? Better guess right how the project types were translated into your language, otherwise the text search will come up with nothing and you have to scroll through every single project template to find the one you are looking for. Also if you ever add new project templates for new technologies they'll not be discoverable at all. Nobody is going to find them now. In the old system it was clear that the new technology got a new subtree branch and it was readily discoverable. Sorry but the new start screen is not usable.
Avatar
igor.cwer@gmail.com 2019-05-31 04:47:32
It is really a miracle how VS team can break things from release to release. While IntelliSense was working bad in vs2017, but at least controllable, now it 1) does not work, 2) can not be stopped and 3) can hang vs completely. And yes, I am using it to work on Unreal Engine project. You guys should stop "just checking your IntelliScence on some big codebase", you should try to work on that codebase with intelliscence enabled.
Avatar
Arne Klein 2019-05-31 05:11:23
It's good to see, that the solution load time is improving, however, the two most annoying problems persist for use: 1. Updating nuget packages is really a pain for large solutions since each project is unloaded and loaded again, therefore taking forever. It currently takes at least half an hour to update just a single package. The time doesn't get much worse if we update multiple packages, however, if anything fails (like all projects except one have received the update) its almost impossible to find the culprit in this case. 2. Just opening a project in visual studio gets the fan kicking before we even start to work. IMHO idle performance should be a lot better.
Avatar
Yves Goergen 2019-05-31 05:11:39
Now what about performance improvements for this weblog? I have to wait half a minute for the post overview and many seconds for each article page. Always. Everywhere. And the Microsoft web login is also broken. When I click on "sign in" I am welcomed with "Something is wrong" and  have to re-enter my e-mail address. Strangely, the password is not required. And of course this process also takes up to half a minute. Look over to Google: I am already logged in. Always. And when I log out, I'm back in in an instant. As always, Microsoft fails on the web. Not much has improved over the decades, really.
Avatar
Stepan Hakobyan 2019-05-31 05:40:18
Disabled the new start window after few days of using VS2019. It was useless to me, it is good only for limited scenarios.
John Line
John Line 2019-05-31 06:41:45
I'm a retired Software Engineer, but I still write in C# using VS Community 2017 v15.9.5.  If I click on the "Download Visual Studio 2019" button above, will it be a "You gotta pay for me!" version, or is/will there be a Community version? In terms of what I'd love to see in VS, how's about having a "Break on Data-change" debugging option?  I used to use this a lot back in VB6 and really miss this functionality in VS.
Avatar
Dean Jackson 2019-05-31 07:45:49
The blogs at devglogs.microsoft.com (asp.net, etc.) sporadically don't show the top main nav bar (Product Blogs, DevOps, etc.) for me in Firefox 66 x64 on Win 8.1. Also, the new blogs are much slower to load for me in Firefox, but are fast in other browsers.
Avatar
Tanguy Fautré 2019-05-31 07:53:18
The memory usage reduction and performance improvements are all well. But given that we still cannot load our C# 200+ projects solutions in Visual Studio because it's stuck on 32-bit, we cannot use Visual Studio at all. Nice way of losing hundreds of developers as customers. Good thing JetBrain Rider works.
Mike Perez
Mike Perez 2019-05-31 10:46:56
One thing I would like to see from visual studio is a change to a 64 bit process. Obviously this is no small feat and I have read up on why you have chosen not to do so. However I have found extension performance is pretty bad due to having to fit within the 3GB process limit, and a real pain point is that I cannot have a x64 based project with an inherited base class for winforms because the designer can't run the 64 bit code. I have a large project that requires 64bit addressing so any cpu is not an option. But I have to always change to any cpu, build, modify, change to x64, test... Over and over and it's a huge time sink. I understand it is a very large task but this seems like something that should already be underway if not already completed. The new synchronous disabling has been an annoying pain for me as every VS update disables resharper again. I then open my project (which takes like a minute) and then have to restart it again because of the start screen blocking the ability for me to see it immediately.
Avatar
Alexandr Golikov 2019-05-31 23:54:22
I agree with most comments.  1. Start page is step back. 2. New project dialog is step back. 3. We need x64 VS Because of memory and c# disigner (with x64 controls inheritance) problems. 4. You blogs sre slow and not comfortable to use.
Avatar
James Lonero 2019-06-01 15:03:34
What about for C#?
Avatar
anonymous 2019-06-03 08:20:35
This comment has been deleted.
Avatar
Evgeny Vrublevsky 2019-06-08 01:53:43
I wish there were an option to replace this annoying Start Window to old Start Page from VS2017. But there is no such an option, so I had to disable this Start Window completely. At least thank you that provided an option to disable this window.
Avatar
László Csöndes 2019-06-08 05:33:17
I guess we're not getting a 64-bit VS in this decade then.
Avatar
moovthis 2019-06-09 11:29:18
I used VS2019 for a few weeks when one of the first previews came out. Ended up uninstalling for three reasons: the debugging step icons turned out to be a constant source of frustration resulting in not only a breakpoint in the code but also my own pesonal workflow needing deciphering on what was actually meant vs. what I want (in, over, out). I was inundated with excessive warning messages "your license is about to experire" starting at once a day increasing in frequency to many times a day. At the same time i was getting similar message from other microsoft applications (outlook, mail) all with excessive nannying interupting my workflow the whole day. Gems such as: "there is a problem with your account" - no Microsoft, my account / password / setttings are just fine "your account has expired" -no Microsoft, my account / password / setttings are just fine "your account settting are out of date"  - no Microsoft I really don't want to use "Windows Hello" "you are logged in with blahblah" - no Microsoft I logged myself out, shut my machine off and went to bed, when I power my machine on in the morning I am not logged in to anything! Every update to a Microsoft update I get, I notice there is more nannying, more spying, more idiotic / unnecessary changes, more emoticons, more nonsense. The lastest is "improved" UI design in Office 365. For the first time in two years of paying for Office 365 I wondered if Outlook 2010 did not have a more functional UI. Back to VS2019, it ended up being a constant source of frustration so I uninstalled it and went back to VS2017. Any improvements to performance in a few seconds were offset by minutes and hours lost. Rather live a hang once or twice per day requiring a restart, and my Razor C mark up formatting blowing up. I have since installed a Mac virtual machine in VMware, installed Office365 and Visual Studio as the first steps just to see if it would be possible.
Adam Hardin
Adam Hardin 2019-06-21 10:26:06
Performance is extremely slow (I have an i5-7500 at 3.41 GHz and 16 gigs of ram), IntelliSense doesn't work half the time, makes productivity very hard. Honestly, this is unacceptable.
0 1
1 2019-08-02 23:40:16
I was excited to switch from 2017 to 2019. Been using it for the whole day. But I noticed it gets slower the longer I used it.. not sure if it's a memory leak or what. I googled it to find out if it's just me .. nope. : ( I think I'll go try out VS Code again... I remembered that tool loaded fast and didn't slow down my computer over time.
Avatar
Jason Honingford 2019-08-06 11:01:59
Google searched tips on speeding up the debugging process in VS 2019 and found this page that made me chuckle. It's still super slow dude even on newer PC's.
Avatar
anonymous 2019-08-11 13:54:23
This comment has been deleted.