{"id":240324,"date":"2022-11-21T10:05:22","date_gmt":"2022-11-21T18:05:22","guid":{"rendered":"https:\/\/devblogs.microsoft.com\/visualstudio\/?p=240324"},"modified":"2022-11-21T10:06:04","modified_gmt":"2022-11-21T18:06:04","slug":"visual-studio-2022-performance-enhancements-17-4","status":"publish","type":"post","link":"https:\/\/devblogs.microsoft.com\/visualstudio\/visual-studio-2022-performance-enhancements-17-4\/","title":{"rendered":"Visual Studio 2022 Performance Enhancements 17.4"},"content":{"rendered":"<p style=\"text-align: justify;\"><span data-contrast=\"none\">Every new Visual Studio release includes new performance improvements that make the product faster and more responsive. 17.4 has some significant improvements across common scenarios like\u00a0 <\/span><a href=\"bookmark:\/\/Bookmark8\"><span data-contrast=\"none\">Find in Files,<\/span><\/a> <a href=\"bookmark:\/\/Bookmark9\"><span data-contrast=\"none\">Branch switching<\/span><\/a><span data-contrast=\"none\">, <\/span><a href=\"bookmark:\/\/Bookmark10\"><span data-contrast=\"none\">configuration <\/span><\/a><span data-contrast=\"none\">changes<\/span><span data-contrast=\"none\">, <\/span><a href=\"bookmark:\/\/Bookmark11\"><span data-contrast=\"none\">unit<\/span><\/a><span data-contrast=\"none\"> testing<\/span><span data-contrast=\"none\">, <\/span><a href=\"bookmark:\/\/Bookmark7\"><span data-contrast=\"none\">C++ indexing<\/span><\/a><span data-contrast=\"none\"> and <\/span><a href=\"bookmark:\/\/Bookmark12\"><span data-contrast=\"none\">file saving<\/span><\/a><span data-contrast=\"none\">. We use product telemetry from our GA releases to set baselines, run experiments in previews to test different solutions, measure changes in controlled lab environments for repeatable results, and <\/span><a href=\"https:\/\/en.wikipedia.org\/wiki\/Eating_your_own_dog_food\"><span data-contrast=\"none\">dogfood<\/span><\/a><span data-contrast=\"none\"> builds daily to test our changes. While your mileage may vary, we believe there is something here for everyone. Download Visual Studio 2022 to check out some of the improvements below.<\/span><span data-ccp-props=\"{&quot;201341983&quot;:0,&quot;335551550&quot;:6,&quot;335551620&quot;:6,&quot;335559739&quot;:160,&quot;335559740&quot;:259}\">\u00a0<\/span><\/p>\n<p><div  class=\"d-flex justify-content-center\"><a class=\"cta_button_link btn-primary mb-24\" href=\"https:\/\/visualstudio.microsoft.com\/vs\/\" target=\"_blank\">Download VS2022 17.4<\/a><\/div><\/p>\n<pre><\/pre>\n<h3 aria-level=\"2\"><b><span data-contrast=\"none\">Find and Replace in Files<\/span><\/b><span data-ccp-props=\"{&quot;201341983&quot;:0,&quot;335559738&quot;:40,&quot;335559739&quot;:0,&quot;335559740&quot;:259}\">\u00a0<\/span><\/h3>\n<p style=\"text-align: justify;\"><span data-contrast=\"none\">Replace in Files on the entire solution is now 3-4 times faster! You&#8217;ll see a significant improvement in how fast you can do a bulk replacement in a large solution.\u00a0 We have achieved this by making incremental improvements in the last few releases.\u00a0 For example, by avoiding opening modified files while preserving the global undo capabilities, Async save, maximizing usage of caching &amp; indexing. Stay tuned for continued performance enhancements to the Find and Replace experience.<\/span><span data-ccp-props=\"{&quot;201341983&quot;:0,&quot;335551550&quot;:6,&quot;335551620&quot;:6,&quot;335559739&quot;:160,&quot;335559740&quot;:259}\">\u00a0<\/span><\/p>\n<p style=\"text-align: justify;\"><span data-contrast=\"none\">Based on our measurements for the 95th percentile in Preview channel, 95% of Replace operations complete within 8 sec in 17.4 whereas they used to take up to 25sec in 17.3.<\/span><span data-ccp-props=\"{&quot;201341983&quot;:0,&quot;335551550&quot;:6,&quot;335551620&quot;:6,&quot;335559739&quot;:160,&quot;335559740&quot;:259}\">\u00a0<\/span><\/p>\n<p>&nbsp;<\/p>\n<p><span data-ccp-props=\"{&quot;201341983&quot;:0,&quot;335551550&quot;:6,&quot;335551620&quot;:6,&quot;335559739&quot;:160,&quot;335559740&quot;:259}\"> <a href=\"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2022\/11\/blog-1.jpg\"><img decoding=\"async\" class=\" wp-image-240343 aligncenter\" src=\"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2022\/11\/blog-1-300x183.jpg\" alt=\"Image blog\" width=\"405\" height=\"247\" srcset=\"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2022\/11\/blog-1-300x183.jpg 300w, https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2022\/11\/blog-1.jpg 638w\" sizes=\"(max-width: 405px) 100vw, 405px\" \/><\/a><\/span><\/p>\n<h3><\/h3>\n<p>&nbsp;<\/p>\n<h3><b><span data-contrast=\"none\">Faster Indexing for C++ Projects<\/span><\/b><span data-ccp-props=\"{&quot;201341983&quot;:0,&quot;335559738&quot;:40,&quot;335559739&quot;:0,&quot;335559740&quot;:259}\">\u00a0<\/span><\/h3>\n<p style=\"text-align: justify;\"><span data-contrast=\"auto\">The time it takes to open a C++ project for the first time has significantly reduced. Large C++ projects could see a 20-35% speed improvement over 17.3 when populating the source code index used for colorization and IntelliSense.\u00a0<\/span><span data-ccp-props=\"{&quot;134233118&quot;:true,&quot;201341983&quot;:0,&quot;335551550&quot;:6,&quot;335551620&quot;:6,&quot;335559738&quot;:60,&quot;335559739&quot;:160,&quot;335559740&quot;:240}\">\u00a0<\/span><span data-contrast=\"none\">These <\/span><span data-contrast=\"auto\">performance gains<\/span><span data-contrast=\"none\"> come in addition to other <\/span><a href=\"https:\/\/devblogs.microsoft.com\/cppblog\/vs2022-performance-enhancements-faster-c-development\/\"><span data-contrast=\"none\">improvements<\/span><\/a><span data-contrast=\"none\"> made in the previous release.<\/span><span data-contrast=\"auto\">\u00a0\u00a0<\/span><span data-ccp-props=\"{&quot;134233118&quot;:true,&quot;201341983&quot;:0,&quot;335551550&quot;:6,&quot;335551620&quot;:6,&quot;335559738&quot;:60,&quot;335559739&quot;:160,&quot;335559740&quot;:240}\">\u00a0<\/span><\/p>\n<p style=\"text-align: justify;\"><a href=\"https:\/\/aka.ms\/CPlusndexing\"><span data-contrast=\"none\">You can read more about the C++ IDE experience performance improvement here<\/span><span data-contrast=\"auto\">\u00a0<\/span><\/a><span data-ccp-props=\"{&quot;134233118&quot;:true,&quot;201341983&quot;:0,&quot;335551550&quot;:6,&quot;335551620&quot;:6,&quot;335559738&quot;:60,&quot;335559739&quot;:160,&quot;335559740&quot;:240}\">\u00a0<\/span><\/p>\n<p style=\"text-align: justify;\"><span data-ccp-props=\"{&quot;134233118&quot;:true,&quot;201341983&quot;:0,&quot;335551550&quot;:6,&quot;335551620&quot;:6,&quot;335559738&quot;:60,&quot;335559739&quot;:160,&quot;335559740&quot;:240}\">\u00a0<\/span><\/p>\n<h3><b><span data-contrast=\"none\">Reducing solution reloads during Git branch switches<\/span><\/b><span data-ccp-props=\"{&quot;201341983&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:259}\">\u00a0<\/span><\/h3>\n<p style=\"text-align: justify;\"><span data-contrast=\"none\">We reduced the number of branch switches that need solution reloads by an estimate of 80%.\u00a0 For example, when a developer\u2019s change gets merged and reaches the <\/span><i><span data-contrast=\"none\">main<\/span><\/i> <span data-contrast=\"none\">branch <\/span><span data-contrast=\"none\">the rest of the team would have experienced a solution reload when switching to or from this branch. This scenario should no longer prompt a solution reload resulting in a faster branch switching experience.\u00a0 <\/span><span data-ccp-props=\"{&quot;201341983&quot;:0,&quot;335551550&quot;:6,&quot;335551620&quot;:6,&quot;335559738&quot;:240,&quot;335559739&quot;:160,&quot;335559740&quot;:276}\">\u00a0<\/span><\/p>\n<p style=\"text-align: justify;\"><span data-contrast=\"none\">These improvements come in addition to others made in the past few releases, which have reduced overall branch switch times measured at ~16 seconds in VS 2019 to ~10 seconds in VS2022 for the 95th percentile.<\/span><span data-contrast=\"none\">\u00a0<\/span><span data-ccp-props=\"{&quot;201341983&quot;:0,&quot;335551550&quot;:6,&quot;335551620&quot;:6,&quot;335559738&quot;:240,&quot;335559739&quot;:160,&quot;335559740&quot;:276}\">\u00a0<\/span><\/p>\n<p style=\"text-align: justify;\"><span data-contrast=\"none\">\u00a0<\/span><\/p>\n<p><a href=\"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2022\/11\/Branchswitching.gif\"><img decoding=\"async\" class=\"alignnone size-full wp-image-240347\" src=\"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2022\/11\/Branchswitching.gif\" alt=\"Image Branchswitching\" width=\"1920\" height=\"1080\" \/><\/a><\/p>\n<p>&nbsp;<\/p>\n<h3><b><span data-contrast=\"none\">.NET configuration switch responsiveness<\/span><\/b><span data-ccp-props=\"{&quot;201341983&quot;:0,&quot;335559738&quot;:240,&quot;335559739&quot;:160,&quot;335559740&quot;:259}\">\u00a0<\/span><\/h3>\n<p style=\"text-align: justify;\"><span data-contrast=\"auto\">We addressed issues<\/span> <span data-contrast=\"auto\">related to switching configurations, such as changing from Debug to Release in the IDE. With these changes, Visual Studio is much more responsive after making such a switch.<\/span><span data-ccp-props=\"{&quot;201341983&quot;:0,&quot;335551550&quot;:6,&quot;335551620&quot;:6,&quot;335559738&quot;:240,&quot;335559739&quot;:160,&quot;335559740&quot;:259}\">\u00a0<\/span><\/p>\n<p style=\"text-align: justify;\"><span data-contrast=\"auto\">Previously, when we switched configurations, we would completely tear down Roslyn\u2019s view of the project, then create a new one from scratch. This would result in re-parsing all source files in the project.<\/span><span data-ccp-props=\"{&quot;201341983&quot;:0,&quot;335551550&quot;:6,&quot;335551620&quot;:6,&quot;335559738&quot;:240,&quot;335559739&quot;:160,&quot;335559740&quot;:259}\">\u00a0<\/span><\/p>\n<p style=\"text-align: justify;\"><span data-contrast=\"auto\">In practice, this new state would be very similar to the discarded one, with only a few differences.<\/span><span data-ccp-props=\"{&quot;201341983&quot;:0,&quot;335551550&quot;:6,&quot;335551620&quot;:6,&quot;335559738&quot;:240,&quot;335559739&quot;:160,&quot;335559740&quot;:259}\">\u00a0<\/span><\/p>\n<p style=\"text-align: justify;\"><span data-contrast=\"auto\">Now, configuration switches reuse the existing Roslyn project, updating it with only the small delta between configurations. Consequently, Roslyn can do much less work to bring IDE features up to date for the newly selected configuration, reducing wait time.<\/span><span data-ccp-props=\"{&quot;201341983&quot;:0,&quot;335551550&quot;:6,&quot;335551620&quot;:6,&quot;335559738&quot;:240,&quot;335559739&quot;:160,&quot;335559740&quot;:259}\">\u00a0<\/span><\/p>\n<p style=\"text-align: justify;\"><span data-contrast=\"auto\">The table below shows the performance improvements achieved between the two releases.<\/span><span data-ccp-props=\"{&quot;201341983&quot;:0,&quot;335551550&quot;:6,&quot;335551620&quot;:6,&quot;335559738&quot;:240,&quot;335559739&quot;:160,&quot;335559740&quot;:259}\">\u00a0<\/span><\/p>\n<table style=\"width: 89.0539%; height: 181px;\" data-tablestyle=\"MsoTableGrid\" data-tablelook=\"1696\" aria-rowcount=\"5\">\n<tbody>\n<tr style=\"background-color: #0474bf;\" aria-rowindex=\"1\">\n<td data-celllook=\"69905\"><strong><span style=\"color: #ffffff;\">Improvements\u00a0<\/span><\/strong><\/td>\n<td data-celllook=\"69905\"><strong><span style=\"color: #ffffff;\">17.3\u00a0<\/span><\/strong><\/td>\n<td data-celllook=\"69905\"><strong><span style=\"color: #ffffff;\">17.4\u00a0<\/span><\/strong><\/td>\n<td data-celllook=\"69905\"><strong><span style=\"color: #ffffff;\">GAIN\u00a0<\/span><\/strong><\/td>\n<\/tr>\n<tr aria-rowindex=\"2\">\n<td data-celllook=\"4369\"><span data-contrast=\"none\">Inheritance Margin<\/span><span data-ccp-props=\"{&quot;201341983&quot;:0,&quot;335559740&quot;:259}\">\u00a0<\/span><\/td>\n<td data-celllook=\"4369\"><span data-contrast=\"none\">51.1 sec<\/span><span data-ccp-props=\"{&quot;201341983&quot;:0,&quot;335559740&quot;:259}\">\u00a0<\/span><\/td>\n<td data-celllook=\"4369\"><span data-contrast=\"none\">26.6 sec<\/span><span data-ccp-props=\"{&quot;201341983&quot;:0,&quot;335559740&quot;:259}\">\u00a0<\/span><\/td>\n<td data-celllook=\"4369\"><span data-contrast=\"none\">47.90%<\/span><span data-ccp-props=\"{&quot;201341983&quot;:0,&quot;335559740&quot;:259}\">\u00a0<\/span><\/td>\n<\/tr>\n<tr aria-rowindex=\"3\">\n<td data-celllook=\"4369\"><span data-contrast=\"none\">Errors<\/span><span data-ccp-props=\"{&quot;201341983&quot;:0,&quot;335559740&quot;:259}\">\u00a0<\/span><\/td>\n<td data-celllook=\"4369\"><span data-contrast=\"none\">60.3<\/span><span data-ccp-props=\"{&quot;201341983&quot;:0,&quot;335559740&quot;:259}\">\u00a0<\/span><\/td>\n<td data-celllook=\"4369\"><span data-contrast=\"none\">27.8<\/span><span data-ccp-props=\"{&quot;201341983&quot;:0,&quot;335559740&quot;:259}\">\u00a0<\/span><\/td>\n<td data-celllook=\"4369\"><span data-contrast=\"none\">53.90%<\/span><span data-ccp-props=\"{&quot;201341983&quot;:0,&quot;335559740&quot;:259}\">\u00a0<\/span><\/td>\n<\/tr>\n<tr aria-rowindex=\"4\">\n<td data-celllook=\"4369\"><span data-contrast=\"none\">CodeLens<\/span><span data-ccp-props=\"{&quot;201341983&quot;:0,&quot;335559740&quot;:259}\">\u00a0<\/span><\/td>\n<td data-celllook=\"4369\"><span data-contrast=\"none\">128.3<\/span><span data-ccp-props=\"{&quot;201341983&quot;:0,&quot;335559740&quot;:259}\">\u00a0<\/span><\/td>\n<td data-celllook=\"4369\"><span data-contrast=\"none\">38.2<\/span><span data-ccp-props=\"{&quot;201341983&quot;:0,&quot;335559740&quot;:259}\">\u00a0<\/span><\/td>\n<td data-celllook=\"4369\"><span data-contrast=\"none\">70.20%<\/span><span data-ccp-props=\"{&quot;201341983&quot;:0,&quot;335559740&quot;:259}\">\u00a0<\/span><\/td>\n<\/tr>\n<tr aria-rowindex=\"5\">\n<td data-celllook=\"4369\"><span data-contrast=\"none\">Background tasks<\/span><span data-ccp-props=\"{&quot;201341983&quot;:0,&quot;335559740&quot;:259}\">\u00a0<\/span><\/td>\n<td data-celllook=\"4369\"><span data-contrast=\"none\">219.2<\/span><span data-ccp-props=\"{&quot;201341983&quot;:0,&quot;335559740&quot;:259}\">\u00a0<\/span><\/td>\n<td data-celllook=\"4369\"><span data-contrast=\"none\">89.9<\/span><span data-ccp-props=\"{&quot;201341983&quot;:0,&quot;335559740&quot;:259}\">\u00a0<\/span><\/td>\n<td data-celllook=\"4369\"><span data-contrast=\"none\">58.90%<\/span><span data-ccp-props=\"{&quot;201341983&quot;:0,&quot;335559740&quot;:259}\">\u00a0<\/span><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p><span data-ccp-props=\"{&quot;201341983&quot;:0,&quot;335559738&quot;:240,&quot;335559739&quot;:160,&quot;335559740&quot;:259}\">\u00a0<\/span><\/p>\n<h3><b><span data-contrast=\"none\">Unit Test Performance<\/span><\/b><span data-ccp-props=\"{&quot;201341983&quot;:0,&quot;335559738&quot;:240,&quot;335559739&quot;:160,&quot;335559740&quot;:259}\">\u00a0<\/span><\/h3>\n<h5><span style=\"font-size: 14pt;\"><b>Parallel Test discovery<\/b><b>:<\/b> <\/span><\/h5>\n<p><span data-contrast=\"auto\">In solutions with multiple test projects, the Test Explorer now discovers the presence of tests in different test projects in parallel. This means tests are discovered and displayed in the Test Explorer much faster!\u00a0\u00a0 In our tests, we have seen test discovery complete twice as fast on a large solution with greater than 150 projects and close to 300K tests (on a machine with 10 CPU cores).<\/span><span data-ccp-props=\"{&quot;201341983&quot;:0,&quot;335551550&quot;:6,&quot;335551620&quot;:6,&quot;335559738&quot;:240,&quot;335559739&quot;:160,&quot;335559740&quot;:259}\">\u00a0<\/span><\/p>\n<h5><span style=\"font-size: 14pt;\"><b>Efficient parallelization of test runs<\/b><b>: <\/b><\/span><\/h5>\n<p><span data-contrast=\"auto\">Test assemblies are now optimally parallelized across Target Frameworks and Architectures resulting in test runs that are three times faster on a large solution with greater than 150 projects.<\/span><span data-ccp-props=\"{&quot;201341983&quot;:0,&quot;335551550&quot;:6,&quot;335551620&quot;:6,&quot;335559738&quot;:240,&quot;335559739&quot;:160,&quot;335559740&quot;:259}\">\u00a0<\/span><\/p>\n<h5><span style=\"font-size: 14pt;\"><b>Optimized communication between VS and test runner processes<\/b><b>: <\/b><\/span><\/h5>\n<p><span data-contrast=\"none\">The test runner process connections are now established sooner. This means saving around 1 second on average per test assembly included in the test run. This leads to significant speed up for test runs involving a small number of tests. The communication between test runners and VS has also been tuned to be less chatty and more efficient. This leads to noticeable improvement especially for test discovery (up to 30% speed gain in many cases).<\/span><span data-ccp-props=\"{&quot;201341983&quot;:0,&quot;335551550&quot;:6,&quot;335551620&quot;:6,&quot;335559738&quot;:240,&quot;335559739&quot;:160,&quot;335559740&quot;:259}\">\u00a0<\/span><\/p>\n<p><span data-ccp-props=\"{&quot;201341983&quot;:0,&quot;335559738&quot;:240,&quot;335559739&quot;:160,&quot;335559740&quot;:259}\">\u00a0<\/span><\/p>\n<h3><b><span data-contrast=\"none\">Responsive File Save<\/span><\/b><span data-ccp-props=\"{&quot;201341983&quot;:0,&quot;335559738&quot;:40,&quot;335559739&quot;:0,&quot;335559740&quot;:259}\">\u00a0<\/span><\/h3>\n<p><span data-contrast=\"auto\">We moved most of the Save operations to a background thread allowing Visual Studio to stay responsive while documents are being saved. This enhancement is most noticeable when working on slow hard drives, network shares or editing exceptionally large files.<\/span><span data-ccp-props=\"{&quot;201341983&quot;:0,&quot;335551550&quot;:6,&quot;335551620&quot;:6,&quot;335559739&quot;:160,&quot;335559740&quot;:259}\">\u00a0<\/span><\/p>\n<p><span data-ccp-props=\"{&quot;134233118&quot;:true,&quot;201341983&quot;:0,&quot;335559738&quot;:60,&quot;335559739&quot;:160,&quot;335559740&quot;:240}\">\u00a0<\/span><\/p>\n<h3 aria-level=\"4\"><b><span data-contrast=\"none\">Tell us what you think!<\/span><\/b><span data-ccp-props=\"{&quot;201341983&quot;:0,&quot;335559738&quot;:40,&quot;335559739&quot;:0,&quot;335559740&quot;:259}\">\u00a0<\/span><\/h3>\n<p><span data-ccp-props=\"{&quot;201341983&quot;:0,&quot;335559739&quot;:160,&quot;335559740&quot;:259}\">\u00a0<\/span><span data-contrast=\"auto\">We hope these performance enhancements make your development work efficient and enjoyable.<\/span><span data-contrast=\"none\"> Feedback from developers like you is very important for us to improve the product and meet your expectations. We welcome your feedback in the comments section of this Blogpost.\u00a0 You<\/span><span data-contrast=\"none\"> c<\/span><span data-contrast=\"none\">an also contact us at <\/span><span data-contrast=\"auto\">the <\/span><a href=\"https:\/\/developercommunity.visualstudio.com\/home\"><span data-contrast=\"none\">Developer Community<\/span><\/a><span data-contrast=\"auto\"> or via <a href=\"https:\/\/aka.ms\/AAis18h\">survey.<\/a><\/span><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Every new Visual Studio release includes new performance improvements that make the product faster and more responsive. 17.4 has some significant improvements across common scenarios like\u00a0 Find in Files, Branch switching, configuration changes, unit testing, C++ indexing and file saving. We use product telemetry from our GA releases to set baselines, run experiments in previews [&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":[6868,6869,155],"tags":[5442,6871,6821,6870,6872],"class_list":["post-240324","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-performance","category-reliability","category-visual-studio","tag-find-in-files","tag-git-branch-switching","tag-performance-improvements","tag-reliability","tag-unit-test-performance"],"acf":[],"blog_post_summary":"<p>Every new Visual Studio release includes new performance improvements that make the product faster and more responsive. 17.4 has some significant improvements across common scenarios like\u00a0 Find in Files, Branch switching, configuration changes, unit testing, C++ indexing and file saving. We use product telemetry from our GA releases to set baselines, run experiments in previews [&hellip;]<\/p>\n","_links":{"self":[{"href":"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-json\/wp\/v2\/posts\/240324","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=240324"}],"version-history":[{"count":0,"href":"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-json\/wp\/v2\/posts\/240324\/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=240324"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-json\/wp\/v2\/categories?post=240324"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-json\/wp\/v2\/tags?post=240324"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}