{"id":225553,"date":"2019-05-30T12:19:08","date_gmt":"2019-05-30T19:19:08","guid":{"rendered":"https:\/\/devblogs.microsoft.com\/visualstudio\/?p=225553"},"modified":"2019-05-30T12:19:08","modified_gmt":"2019-05-30T19:19:08","slug":"performance-improvements-in-visual-studio-2019","status":"publish","type":"post","link":"https:\/\/devblogs.microsoft.com\/visualstudio\/performance-improvements-in-visual-studio-2019\/","title":{"rendered":"Performance Improvements in Visual Studio 2019"},"content":{"rendered":"<p>Performance has been a big focus area for Visual Studio 2019, with improvements in many areas, including:<\/p>\n<ul>\n<li>Faster Visual Studio startup<\/li>\n<li>Faster branch switching experience in Visual Studio<\/li>\n<li>C++ open folder \u2013 time to IntelliSense improvements<\/li>\n<li>Faster C++ compiler build times<\/li>\n<li>Faster debug stepping<\/li>\n<li>Debug extra large C++ codebases<\/li>\n<li>Faster installation updates<\/li>\n<\/ul>\n<h2>Faster and clean startup<\/h2>\n<p>Something you&#8217;ll notice when you open Visual Studio 2019 is its new start window. The new start window is much faster than Visual Studio 2017\u2019s 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 <a href=\"https:\/\/devblogs.microsoft.com\/visualstudio\/updates-to-synchronous-autoload-of-extensions-in-visual-studio-2019\/\">synchronously autoloaded extensions<\/a> to improve startup and solution load times. This allows you to get to your code faster.<\/p>\n<p><figure id=\"attachment_225555\" aria-labelledby=\"figcaption_attachment_225555\" class=\"wp-caption alignnone\" ><img decoding=\"async\" class=\"size-full wp-image-225555\" src=\"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2019\/05\/Visual-Studio-2019-Start-Window.png\" alt=\"Visual Studio 2019 Start Window\" width=\"770\" height=\"528\" srcset=\"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2019\/05\/Visual-Studio-2019-Start-Window.png 770w, https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2019\/05\/Visual-Studio-2019-Start-Window-300x206.png 300w, https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2019\/05\/Visual-Studio-2019-Start-Window-768x527.png 768w\" sizes=\"(max-width: 770px) 100vw, 770px\" \/><figcaption id=\"figcaption_attachment_225555\" class=\"wp-caption-text\">Visual Studio 2019 Start Window<\/figcaption><\/figure><\/p>\n<h2>Faster branch switching experience<\/h2>\n<p>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).\nTo 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 \u201cstash\u201d 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.<\/p>\n<p><figure id=\"attachment_225557\" aria-labelledby=\"figcaption_attachment_225557\" class=\"wp-caption alignnone\" ><img decoding=\"async\" class=\"size-full wp-image-225557\" src=\"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2019\/05\/Faster-Visual-Studio-2019-GitBranch_Switching.gif\" alt=\"Faster Visual Studio 2019 Git Branch Switching\" width=\"2536\" height=\"1306\" \/><figcaption id=\"figcaption_attachment_225557\" class=\"wp-caption-text\">Visual Studio 2019 Git Branch Switching Experience<\/figcaption><\/figure><\/p>\n<h2>Faster debugger stepping<\/h2>\n<p>Since large part of the development cycle includes stepping through and debugging code, we have worked to bring several improvements to the debugger performance.\u00a0 Stepping through your code\u00a0is over 50% faster in Visual Studio 2019 versus 2017.\u00a0 The Watch, Autos, and Locals windows are 70% faster. Moreover, since most debugger-related\u00a0windows (i.e. watch window, call stack window, etc.) are now asynchronous, you can now interact with one window\u00a0in Visual Studio while waiting for information to load in another.<\/p>\n<p><figure id=\"attachment_225556\" aria-labelledby=\"figcaption_attachment_225556\" class=\"wp-caption alignnone\" ><img decoding=\"async\" class=\"size-full wp-image-225556\" src=\"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2019\/05\/Faster-Visual-Studio-2019-Debugger-Stepping.gif\" alt=\"Faster Visual Studio 2019 Debugger Stepping\" width=\"1748\" height=\"1074\" \/><figcaption id=\"figcaption_attachment_225556\" class=\"wp-caption-text\">Visual Studio 2019 Debugger Stepping<\/figcaption><\/figure><\/p>\n<h2>Debug very large C++ codebases<\/h2>\n<p>Visual Studio 2019 introduces an improved debugger for C++ that uses an external 64-bit process for hosting its memory-intensive components. If you\u2019ve 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 <a href=\"https:\/\/devblogs.microsoft.com\/cppblog\/out-of-process-debugger-for-c-in-visual-studio-2019\/\">Gears of War case study<\/a>.<\/p>\n<p><figure id=\"attachment_225558\" aria-labelledby=\"figcaption_attachment_225558\" class=\"wp-caption alignnone\" ><img decoding=\"async\" class=\"size-full wp-image-225558\" src=\"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2019\/05\/Visual-Studio-2019-Debug-Large-Coderbases-GoW-Demo.gif\" alt=\"Visual Studio 2019 Debug Large Coderbases GoW Demo\" width=\"1024\" height=\"1024\" \/><figcaption id=\"figcaption_attachment_225558\" class=\"wp-caption-text\">Visual Studio 2019 Debug Large Coderbases GoW Demo<\/figcaption><\/figure><\/p>\n<h2>Indexing and IntelliSense performance in C++ CMake Projects<\/h2>\n<p>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 <a href=\"https:\/\/nam06.safelinks.protection.outlook.com\/?url=https%3A%2F%2Freleases.llvm.org%2F&amp;data=01%7C01%7CVarun.Gupta%40microsoft.com%7Cc448dee9a12d470c8c1b08d6cf3728d2%7C72f988bf86f141af91ab2d7cd011db47%7C1&amp;sdata=aXAQR6b7COumi3pwL7LHpm911t5WhzGhbwBwm8LCeJ0%3D&amp;reserved=0\">LLVM codebase<\/a>, 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\u2019t need to wait for the entire folder to be indexed before you can be productive with your code.<\/p>\n<p><figure id=\"attachment_225554\" aria-labelledby=\"figcaption_attachment_225554\" class=\"wp-caption alignnone\" ><img decoding=\"async\" class=\"size-full wp-image-225554\" src=\"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2019\/05\/Visual-Studio-2019-Faster-Indexing-and-IntelliSense.png\" alt=\"Visual Studio 2019 Faster Indexing and IntelliSense\" width=\"3000\" height=\"1922\" srcset=\"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2019\/05\/Visual-Studio-2019-Faster-Indexing-and-IntelliSense.png 3000w, https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2019\/05\/Visual-Studio-2019-Faster-Indexing-and-IntelliSense-300x192.png 300w, https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2019\/05\/Visual-Studio-2019-Faster-Indexing-and-IntelliSense-768x492.png 768w, https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2019\/05\/Visual-Studio-2019-Faster-Indexing-and-IntelliSense-1024x656.png 1024w\" sizes=\"(max-width: 3000px) 100vw, 3000px\" \/><figcaption id=\"figcaption_attachment_225554\" class=\"wp-caption-text\">Visual Studio 2019 Indexing and IntelliSense for C++ CMake LLVM Repository<\/figcaption><\/figure><\/p>\n<h2>Faster C++ Build Linker time is 2x faster<\/h2>\n<p>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.<\/p>\n<p><figure id=\"attachment_225559\" aria-labelledby=\"figcaption_attachment_225559\" class=\"wp-caption alignnone\" ><img decoding=\"async\" class=\"size-full wp-image-225559\" src=\"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2019\/05\/Visual-Studio-2019-Faster-Build-Linker-time.png\" alt=\"Visual Studio 2019 Faster Build Linker time\" width=\"1149\" height=\"578\" srcset=\"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2019\/05\/Visual-Studio-2019-Faster-Build-Linker-time.png 1149w, https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2019\/05\/Visual-Studio-2019-Faster-Build-Linker-time-300x151.png 300w, https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2019\/05\/Visual-Studio-2019-Faster-Build-Linker-time-768x386.png 768w, https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2019\/05\/Visual-Studio-2019-Faster-Build-Linker-time-1024x515.png 1024w\" sizes=\"(max-width: 1149px) 100vw, 1149px\" \/><figcaption id=\"figcaption_attachment_225559\" class=\"wp-caption-text\">Visual Studio 2019 Faster Build Linker time<\/figcaption><\/figure><\/p>\n<h2>Faster installation of Visual Studio updates<\/h2>\n<p>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\u2019re good to go. Using this approach, the update installation time for Visual Studio 2019 updates have decreased significantly.<\/p>\n<h2>Try Visual Studio 2019 and let us know<\/h2>\n<p>We welcome you to try Visual Studio 2019 either with your own projects or with <a href=\"https:\/\/github.com\/dotnet\/roslyn\">Roslyn Compilers<\/a>\u00a0projects 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.<\/p>\n<p>If you are seeing performance issues, please send us feedback through Visual Studio\u2019s\u00a0<a href=\"https:\/\/docs.microsoft.com\/en-us\/visualstudio\/ide\/how-to-report-a-problem-with-visual-studio-2017\">Report a Problem<\/a>\u00a0tool that you can access from Help -&gt; Send Feedback -&gt; Report a problem. This tool will ensure that we have the right set of data to help us analyze the issue.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Performance has been a big focus area for Visual Studio 2019, with improvements in many areas. 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<\/p>\n","protected":false},"author":877,"featured_media":225557,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[155],"tags":[],"class_list":["post-225553","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-visual-studio"],"acf":[],"blog_post_summary":"<p>Performance has been a big focus area for Visual Studio 2019, with improvements in many areas. 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<\/p>\n","_links":{"self":[{"href":"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-json\/wp\/v2\/posts\/225553","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-json\/wp\/v2\/users\/877"}],"replies":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-json\/wp\/v2\/comments?post=225553"}],"version-history":[{"count":0,"href":"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-json\/wp\/v2\/posts\/225553\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-json\/wp\/v2\/media\/225557"}],"wp:attachment":[{"href":"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-json\/wp\/v2\/media?parent=225553"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-json\/wp\/v2\/categories?post=225553"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-json\/wp\/v2\/tags?post=225553"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}