{"id":246040,"date":"2023-11-22T09:21:00","date_gmt":"2023-11-22T17:21:00","guid":{"rendered":"https:\/\/devblogs.microsoft.com\/visualstudio\/?p=246040"},"modified":"2023-11-28T11:32:30","modified_gmt":"2023-11-28T19:32:30","slug":"visual-studio-2022-17-8-performance-enhancements","status":"publish","type":"post","link":"https:\/\/devblogs.microsoft.com\/visualstudio\/visual-studio-2022-17-8-performance-enhancements\/","title":{"rendered":"Visual Studio 2022 \u2013 17.8 Performance Enhancements"},"content":{"rendered":"<p>&nbsp;<\/p>\n<p><span class=\"TextRun SCXW209369947 BCX8\" lang=\"EN-US\" xml:lang=\"EN-US\" data-contrast=\"auto\"><span class=\"NormalTextRun SCXW209369947 BCX8\">Version 17.8 welcomes an array of exhilarating performance enhancements, including<\/span><\/span><span class=\"TextRun SCXW209369947 BCX8\" lang=\"EN-US\" xml:lang=\"EN-US\" data-contrast=\"auto\"><a href=\"#RazorBlazor\"><strong><span class=\"NormalTextRun SCXW209369947 BCX8\"> Improved <\/span><span class=\"NormalTextRun CommentStart SCXW209369947 BCX8\">Razor\/Blazor <\/span><span class=\"NormalTextRun SCXW209369947 BCX8\">Responsiveness<\/span><\/strong><\/a><a href=\"#RazorBlazor\"><span class=\"NormalTextRun SCXW209369947 BCX8\">,<\/span><\/a><\/span><strong><a href=\"#F5Speed\"> <span class=\"TextRun SCXW209369947 BCX8\" lang=\"EN-US\" xml:lang=\"EN-US\" data-contrast=\"auto\"><span class=\"NormalTextRun SCXW209369947 BCX8\">Enhanced F5 Speed<\/span><\/span><\/a><span class=\"TextRun SCXW209369947 BCX8\" lang=\"EN-US\" xml:lang=\"EN-US\" data-contrast=\"auto\"><span class=\"NormalTextRun SCXW209369947 BCX8\">, <\/span><\/span><\/strong><span class=\"TextRun SCXW209369947 BCX8\" lang=\"EN-US\" xml:lang=\"EN-US\" data-contrast=\"auto\"><a href=\"#Intellisense\"><strong><span class=\"NormalTextRun SCXW209369947 BCX8\">O<\/span><span class=\"NormalTextRun SCXW209369947 BCX8\">ptimized IntelliSense for<\/span><span class=\"NormalTextRun SCXW209369947 BCX8\"> C++ Unreal Engine<\/span><\/strong><\/a><span class=\"NormalTextRun SCXW209369947 BCX8\"> and <a href=\"#Acceleration\"><strong>Build Acceleration for Non-SDK style .NET Projects<\/strong><\/a><\/span><span class=\"NormalTextRun SCXW209369947 BCX8\">.<\/span><span class=\"NormalTextRun SCXW209369947 BCX8\">\u00a0 <\/span><\/span><span class=\"TextRun SCXW209369947 BCX8\" lang=\"EN-US\" xml:lang=\"EN-US\" data-contrast=\"auto\"><span class=\"NormalTextRun SCXW209369947 BCX8\">At the heart of these changes is our commitment to enhancing performance, <\/span><span class=\"NormalTextRun SCXW209369947 BCX8\">providing<\/span><span class=\"NormalTextRun SCXW209369947 BCX8\"> an ideal platform for a coding experience that is not only seamless but also highly productive. Embrace these improvements for a more efficient coding journey. Get ready for an exciting experience!<\/span><\/span><span class=\"EOP SCXW209369947 BCX8\" data-ccp-props=\"{&quot;201341983&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:279}\">\u00a0<\/span><\/p>\n<p style=\"text-align: center;\"><div  class=\"d-flex justify-content-center\"><a class=\"cta_button_link btn-primary mb-24\" href=\"https:\/\/visualstudio.microsoft.com\/downloads\/\" target=\"_blank\">Download Visual Studio 2022<\/a><\/div><\/p>\n<h3 aria-level=\"2\"><span data-contrast=\"none\"><a id=\"RazorBlazor\"><\/a>Improved Razor\/Blazor Responsiveness<\/span><\/h3>\n<p><span data-contrast=\"auto\">Solutions using Razor and Blazor will experience better responsiveness. We achieved this by significantly reducing memory allocations during cross-process communications between Visual Studio and Roslyn. We tested the <\/span><a href=\"https:\/\/github.com\/OrchardCMS\/OrchardCore\"><span data-contrast=\"none\">OrchardCore<\/span><\/a><span data-contrast=\"auto\"> solution, and the results are impressive. To open the solution and get Razor intellisense ready, we allocate about 1.4GB less memory. Fewer heap allocations mean less work for the garbage collector, which results in improved responsiveness.\u00a0<\/span><\/p>\n<h3><span data-contrast=\"none\"><a id=\"F5Speed\"><\/a>Enhanced F5 Speed<\/span><span data-ccp-props=\"{&quot;134245418&quot;:true,&quot;134245529&quot;:true,&quot;201341983&quot;:0,&quot;335559738&quot;:160,&quot;335559739&quot;:80,&quot;335559740&quot;:279}\">\u00a0<\/span><\/h3>\n<p><span data-contrast=\"auto\">We&#8217;ve substantially enhanced F5 performance for native projects by optimizing how breakpoints get set up. The improvements seen by any given project depends on the number of files with breakpoints, the number of DLLs with symbols, etc.\u00a0 Additionally, we\u2019ve optimized the PDB loading process for Windows applications, reducing the time required to load a PDB once it&#8217;s located.\u00a0 In our testing, these optimizations delivered a remarkable 20% speed improvement for Unreal Editor projects.<\/span><span data-ccp-props=\"{&quot;201341983&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:279}\">\u00a0<\/span><\/p>\n<p><a href=\"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2023\/11\/debuglaunchbp.png\"><img decoding=\"async\" class=\"alignnone size-full wp-image-246052\" src=\"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2023\/11\/debuglaunchbp.png\" alt=\"Image debuglaunchbp\" width=\"2240\" height=\"1293\" srcset=\"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2023\/11\/debuglaunchbp.png 2240w, https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2023\/11\/debuglaunchbp-300x173.png 300w, https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2023\/11\/debuglaunchbp-1024x591.png 1024w, https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2023\/11\/debuglaunchbp-768x443.png 768w, https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2023\/11\/debuglaunchbp-1536x887.png 1536w, https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2023\/11\/debuglaunchbp-2048x1182.png 2048w\" sizes=\"(max-width: 2240px) 100vw, 2240px\" \/><\/a><\/p>\n<h3><span data-contrast=\"none\"><a id=\"Intellisense\"><\/a>Optimized IntelliSense for C++ Unreal Engine<\/span><span data-ccp-props=\"{&quot;134245418&quot;:true,&quot;134245529&quot;:true,&quot;201341983&quot;:0,&quot;335559739&quot;:0,&quot;335559740&quot;:279}\">\u00a0<\/span><\/h3>\n<p><span data-contrast=\"auto\">We&#8217;ve made improvements to the speed with which IntelliSense and colorization become available after opening a previously opened C++ file. We have always cached IntelliSense state for an opened file. In 17.8, we&#8217;ve restructured the reading from cache, such that the most critical information, including colorization and the highlighting of selected references, are computed first. This optimization helps you get productive sooner.<\/span><span data-ccp-props=\"{&quot;134245418&quot;:true,&quot;134245529&quot;:true,&quot;201341983&quot;:0,&quot;335559739&quot;:0,&quot;335559740&quot;:279}\">\u00a0<\/span><\/p>\n<p><a href=\"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2023\/11\/Intellisense-New.png\"><img decoding=\"async\" class=\"alignnone size-full wp-image-246053\" src=\"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2023\/11\/Intellisense-New.png\" alt=\"Image Intellisense New\" width=\"2116\" height=\"1406\" srcset=\"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2023\/11\/Intellisense-New.png 2116w, https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2023\/11\/Intellisense-New-300x199.png 300w, https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2023\/11\/Intellisense-New-1024x680.png 1024w, https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2023\/11\/Intellisense-New-768x510.png 768w, https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2023\/11\/Intellisense-New-1536x1021.png 1536w, https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2023\/11\/Intellisense-New-2048x1361.png 2048w\" sizes=\"(max-width: 2116px) 100vw, 2116px\" \/><\/a><\/p>\n<h3><span data-contrast=\"none\"><a id=\"Acceleration\"><\/a>Build Acceleration for Non-SDK style .NET Projects<\/span><span data-ccp-props=\"{&quot;201341983&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:279}\">\u00a0<\/span><\/h3>\n<p><span data-contrast=\"auto\">Visual Studio 17.8 extends <\/span><a href=\"https:\/\/github.com\/dotnet\/project-system\/blob\/main\/docs\/build-acceleration.md\"><span data-contrast=\"none\">Build Acceleration<\/span><\/a><span data-contrast=\"auto\"> to managed applications targeting the <\/span><a href=\"https:\/\/learn.microsoft.com\/en-us\/nuget\/resources\/check-project-format\"><span data-contrast=\"none\">non-SDK<\/span><\/a><span data-contrast=\"auto\"> style projects (e.g. projects targeting .NET Framework 4.8 or lower) providing a substantial impact on build times. To enable, set an msbuild project property as follows:\u00a0<\/span><span data-ccp-props=\"{&quot;201341983&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:279}\">\u00a0<\/span><\/p>\n<p style=\"text-align: left;\"><span data-contrast=\"auto\">\u00a0<\/span><b><span data-contrast=\"auto\">&lt;Project&gt;<\/span><\/b><span data-ccp-props=\"{&quot;201341983&quot;:0,&quot;335559739&quot;:0,&quot;335559740&quot;:278}\">\u00a0<\/span><\/p>\n<p style=\"text-align: left;\"><b><span data-contrast=\"auto\">\u00a0 \u00a0 \u00a0 \u00a0 &lt;PropertyGroup&gt; <\/span><\/b> <span data-ccp-props=\"{&quot;201341983&quot;:0,&quot;335559731&quot;:720,&quot;335559739&quot;:0,&quot;335559740&quot;:278}\">\u00a0<\/span><\/p>\n<p style=\"text-align: left;\"><b><span data-contrast=\"auto\">\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 &lt;AccelerateBuildsInVisualStudio&gt;true&lt;\/AccelerateBuildsInVisualStudio&gt;<\/span><\/b><\/p>\n<p style=\"text-align: left;\"><b><span data-contrast=\"auto\">\u00a0 \u00a0 \u00a0 \u00a0&lt;\/PropertyGroup&gt; <\/span><\/b><span data-ccp-props=\"{&quot;201341983&quot;:0,&quot;335559685&quot;:720,&quot;335559731&quot;:720,&quot;335559739&quot;:0,&quot;335559740&quot;:278}\">\u00a0<\/span><\/p>\n<p style=\"text-align: left;\"><b><span data-contrast=\"auto\">&lt;\/Project&gt;\u00a0\u00a0<\/span><\/b><span data-ccp-props=\"{&quot;201341983&quot;:0,&quot;335559739&quot;:0,&quot;335559740&quot;:278}\">\u00a0<\/span><\/p>\n<p><span data-contrast=\"auto\">This builds on the success introduced in 17.5 for <\/span><a href=\"https:\/\/learn.microsoft.com\/en-us\/nuget\/resources\/check-project-format\"><span data-contrast=\"none\">SDK-style<\/span><\/a><span data-contrast=\"auto\"> projects, reducing incremental build times significantly.\u00a0<\/span><span data-ccp-props=\"{&quot;201341983&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:279}\">\u00a0<\/span><\/p>\n<p><span data-contrast=\"auto\">In our internal testing with in-house solutions, we noticed up to a 50% improvement in incremental build times.\u00a0 However, the actual improvement depends on the state of projects when the build begins.\u00a0 Specifically, the fewer the projects that have been modified in comparison to the total projects in the solution, the greater the improvement. The actual extent of improvement you experience will depend on the specific characteristics of your project and its modifications.<\/span><span data-ccp-props=\"{&quot;201341983&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:279}\">\u00a0<\/span><\/p>\n<h3><span data-contrast=\"none\">We value your opinion!\u00a0<\/span><span data-ccp-props=\"{&quot;134245418&quot;:true,&quot;134245529&quot;:true,&quot;201341983&quot;:0,&quot;335559738&quot;:160,&quot;335559739&quot;:80,&quot;335559740&quot;:279}\">\u00a0<\/span><\/h3>\n<p><span data-contrast=\"auto\">We believe these performance enhancements will significantly improve your development experience, making it more efficient and enjoyable. Your feedback is crucial in helping us enhance the product and meet your expectations. We encourage you to provide feedback with us via <\/span><a href=\"https:\/\/developercommunity.visualstudio.com\/home\"><span data-contrast=\"auto\">Developer Community<\/span><\/a><span data-contrast=\"auto\">: report any bugs or issues via <\/span><a href=\"https:\/\/learn.microsoft.com\/en-us\/visualstudio\/ide\/how-to-report-a-problem-with-visual-studio?view=vs-2022\"><span data-contrast=\"none\">Report-a-Problem<\/span><\/a><span data-contrast=\"auto\"> and <\/span><a href=\"https:\/\/developercommunity.visualstudio.com\/report?space=8&amp;entry=suggestion\"><span data-contrast=\"none\">share your suggestions<\/span><\/a><span data-contrast=\"auto\">.\u00a0 Alternatively, feel free to leave your comments below. We appreciate your input and look forward to continuously improving Visual Studio with your valuable insights.<\/span><span data-ccp-props=\"{&quot;201341983&quot;:0,&quot;335559739&quot;:240,&quot;335559740&quot;:279}\">\u00a0<\/span><\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>&nbsp; Version 17.8 welcomes an array of exhilarating performance enhancements, including Improved Razor\/Blazor Responsiveness, Enhanced F5 Speed, Optimized IntelliSense for C++ Unreal Engine and Build Acceleration for Non-SDK style .NET Projects.\u00a0 At the heart of these changes is our commitment to enhancing performance, providing an ideal platform for a coding experience that is not only [&hellip;]<\/p>\n","protected":false},"author":105722,"featured_media":255385,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[155],"tags":[],"class_list":["post-246040","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-visual-studio"],"acf":[],"blog_post_summary":"<p>&nbsp; Version 17.8 welcomes an array of exhilarating performance enhancements, including Improved Razor\/Blazor Responsiveness, Enhanced F5 Speed, Optimized IntelliSense for C++ Unreal Engine and Build Acceleration for Non-SDK style .NET Projects.\u00a0 At the heart of these changes is our commitment to enhancing performance, providing an ideal platform for a coding experience that is not only [&hellip;]<\/p>\n","_links":{"self":[{"href":"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-json\/wp\/v2\/posts\/246040","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\/105722"}],"replies":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-json\/wp\/v2\/comments?post=246040"}],"version-history":[{"count":0,"href":"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-json\/wp\/v2\/posts\/246040\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-json\/wp\/v2\/media\/255385"}],"wp:attachment":[{"href":"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-json\/wp\/v2\/media?parent=246040"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-json\/wp\/v2\/categories?post=246040"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-json\/wp\/v2\/tags?post=246040"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}