{"id":36476,"date":"2026-05-07T16:42:45","date_gmt":"2026-05-07T16:42:45","guid":{"rendered":"https:\/\/devblogs.microsoft.com\/cppblog\/?p=36476"},"modified":"2026-05-07T16:42:45","modified_gmt":"2026-05-07T16:42:45","slug":"project-specific-build-optimizations-with-github-copilot","status":"publish","type":"post","link":"https:\/\/devblogs.microsoft.com\/cppblog\/project-specific-build-optimizations-with-github-copilot\/","title":{"rendered":"Project-Specific Build Optimizations with GitHub Copilot"},"content":{"rendered":"<p>We are excited to announce that GitHub Copilot build performance for Windows now supports project-specific builds! Available in the latest <a href=\"http:\/\/aka.ms\/vs\/insiders\">Visual Studio Insiders<\/a>, you can target a single MSBuild project or CMake target instead of analyzing your entire solution. For game developers and teams working with large codebases, this eliminates the need to wait for a full-solution build when you only want to optimize one project.<\/p>\n<p>Since launching GitHub Copilot build performance for Windows in <a href=\"https:\/\/devblogs.microsoft.com\/cppblog\/now-in-public-preview-github-copilot-build-performance-for-windows\/\">Public Preview<\/a>, we have received a lot of feedback from game studios working on large engines and enterprise monorepos. Rebuilding an entire solution to analyze one project is too slow and too disruptive. With project-specific builds, you can now point the agent at the project you care about and get your results faster.<\/p>\n<p><a href=\"https:\/\/devblogs.microsoft.com\/cppblog\/wp-content\/uploads\/sites\/9\/2026\/05\/Screenshot-2026-05-06-114337.webp\"><img decoding=\"async\" class=\"aligncenter size-full wp-image-36480\" src=\"https:\/\/devblogs.microsoft.com\/cppblog\/wp-content\/uploads\/sites\/9\/2026\/05\/Screenshot-2026-05-06-114337.webp\" alt=\"A screenshot of the C++ Build Performance agent landing page in GitHub Copilot Chat\" width=\"699\" height=\"461\" srcset=\"https:\/\/devblogs.microsoft.com\/cppblog\/wp-content\/uploads\/sites\/9\/2026\/05\/Screenshot-2026-05-06-114337.webp 699w, https:\/\/devblogs.microsoft.com\/cppblog\/wp-content\/uploads\/sites\/9\/2026\/05\/Screenshot-2026-05-06-114337-300x198.webp 300w\" sizes=\"(max-width: 699px) 100vw, 699px\" \/><\/a><\/p>\n<h3>Inspired by Game Developer Feedback<\/h3>\n<p>This feature came directly from feedback during our Private and Public Previews. Game developers working with large C++ codebases told us that full-solution builds were an adoption blocker. In many cases, you told us that you were walking away mid-conversation and switching tabs because the trace took too long.<\/p>\n<p>We kept hearing the same request: \u201cLet me analyze a single project.\u201d<\/p>\n<p>With our project-specific analysis update, you will get the same analysis, optimizations, and validated results, all scoped to the project you choose. The agent&#8217;s intelligence has not changed. Project-specific builds scope the <em>build step<\/em>, not the <em>analysis<\/em> model. You will continue to see bottleneck identification for expensive headers, long function generation times, and costly template instantiations.<\/p>\n<h3>Getting Started with Project-Specific Builds<\/h3>\n<p>There are three ways to start a project-specific build performance session in Visual Studio. All entry points will feed into the same analysis pipeline.<\/p>\n<h4>Right-Click a Project in Solution Explorer<\/h4>\n<p>Right-click any project in Solution Explorer and select <strong>Run Build Insights &gt; Improve Build Performance<\/strong>. This will open a Copilot Chat session pre-filled with the project you selected, so you will not need to type anything.<\/p>\n<p><a href=\"https:\/\/devblogs.microsoft.com\/cppblog\/wp-content\/uploads\/sites\/9\/2026\/05\/Screenshot-2026-05-06-135015.webp\"><img decoding=\"async\" class=\"aligncenter wp-image-36477 size-full\" src=\"https:\/\/devblogs.microsoft.com\/cppblog\/wp-content\/uploads\/sites\/9\/2026\/05\/Screenshot-2026-05-06-135015.webp\" alt=\"Screenshot of right clicking on the Lyra sample project and navigating to Run Build Insights &gt; Improve Build Performance\" width=\"1051\" height=\"383\" srcset=\"https:\/\/devblogs.microsoft.com\/cppblog\/wp-content\/uploads\/sites\/9\/2026\/05\/Screenshot-2026-05-06-135015.webp 1051w, https:\/\/devblogs.microsoft.com\/cppblog\/wp-content\/uploads\/sites\/9\/2026\/05\/Screenshot-2026-05-06-135015-300x109.webp 300w, https:\/\/devblogs.microsoft.com\/cppblog\/wp-content\/uploads\/sites\/9\/2026\/05\/Screenshot-2026-05-06-135015-1024x373.webp 1024w, https:\/\/devblogs.microsoft.com\/cppblog\/wp-content\/uploads\/sites\/9\/2026\/05\/Screenshot-2026-05-06-135015-768x280.webp 768w\" sizes=\"(max-width: 1051px) 100vw, 1051px\" \/><\/a><\/p>\n<h4>Context Menu Entry<\/h4>\n<p>After selecting one of your projects in the Solution Explorer, the Build Menu will have a new entry. Select <strong>Build &gt; Run Build Insights on Selection &gt; Improve Build Performance<\/strong> to open the GitHub Copilot Chat window. This will start a session to optimize the build performance of your selected project.<\/p>\n<p><a href=\"https:\/\/devblogs.microsoft.com\/cppblog\/wp-content\/uploads\/sites\/9\/2026\/05\/Screenshot-2026-05-06-113854.webp\"><img decoding=\"async\" class=\"aligncenter wp-image-36482 size-full\" src=\"https:\/\/devblogs.microsoft.com\/cppblog\/wp-content\/uploads\/sites\/9\/2026\/05\/Screenshot-2026-05-06-113854.webp\" alt=\"Screenshot of context menu Build &gt; Run Build Insights on Selection &gt; Improve Build Performance\" width=\"874\" height=\"217\" srcset=\"https:\/\/devblogs.microsoft.com\/cppblog\/wp-content\/uploads\/sites\/9\/2026\/05\/Screenshot-2026-05-06-113854.webp 874w, https:\/\/devblogs.microsoft.com\/cppblog\/wp-content\/uploads\/sites\/9\/2026\/05\/Screenshot-2026-05-06-113854-300x74.webp 300w, https:\/\/devblogs.microsoft.com\/cppblog\/wp-content\/uploads\/sites\/9\/2026\/05\/Screenshot-2026-05-06-113854-768x191.webp 768w\" sizes=\"(max-width: 874px) 100vw, 874px\" \/><\/a><\/p>\n<h4>Type Directly in Copilot Chat<\/h4>\n<p>Open the GitHub Copilot Chat pane, select the <strong>@BuildPerfCpp<\/strong> responder from the agent combo box.\n<a href=\"https:\/\/devblogs.microsoft.com\/cppblog\/wp-content\/uploads\/sites\/9\/2026\/05\/Screenshot-2026-05-06-135118.webp\"><img decoding=\"async\" class=\"aligncenter size-full wp-image-36478\" src=\"https:\/\/devblogs.microsoft.com\/cppblog\/wp-content\/uploads\/sites\/9\/2026\/05\/Screenshot-2026-05-06-135118.webp\" alt=\"selecting BuildPerfCpp from the agent combo box in GitHub Copilot Chat\" width=\"715\" height=\"535\" srcset=\"https:\/\/devblogs.microsoft.com\/cppblog\/wp-content\/uploads\/sites\/9\/2026\/05\/Screenshot-2026-05-06-135118.webp 715w, https:\/\/devblogs.microsoft.com\/cppblog\/wp-content\/uploads\/sites\/9\/2026\/05\/Screenshot-2026-05-06-135118-300x224.webp 300w\" sizes=\"(max-width: 715px) 100vw, 715px\" \/><\/a>After selecting the responder, type:<\/p>\n<p style=\"padding-left: 40px;\">Help me improve build performance for <em>&lt;MyProject&gt;<\/em><\/p>\n<p>Replace MyProject with the name of the MSBuild project or CMake target you want to optimize.<\/p>\n<p><a href=\"https:\/\/devblogs.microsoft.com\/cppblog\/wp-content\/uploads\/sites\/9\/2026\/05\/Screenshot-2026-05-06-114136.webp\"><img decoding=\"async\" class=\"aligncenter size-full wp-image-36479\" src=\"https:\/\/devblogs.microsoft.com\/cppblog\/wp-content\/uploads\/sites\/9\/2026\/05\/Screenshot-2026-05-06-114136.webp\" alt=\"example prompt of &quot;help me improve my build for the Lyra project&quot;\" width=\"714\" height=\"177\" srcset=\"https:\/\/devblogs.microsoft.com\/cppblog\/wp-content\/uploads\/sites\/9\/2026\/05\/Screenshot-2026-05-06-114136.webp 714w, https:\/\/devblogs.microsoft.com\/cppblog\/wp-content\/uploads\/sites\/9\/2026\/05\/Screenshot-2026-05-06-114136-300x74.webp 300w\" sizes=\"(max-width: 714px) 100vw, 714px\" \/><\/a><\/p>\n<h3>Other Ways to Access GitHub Copilot Build Performance for Windows<\/h3>\n<p>Project-specific builds are the newest way to access the agent, but you can still analyze your full solution through the existing entry points.<\/p>\n<h4>From The Build Menu<\/h4>\n<p>Select <strong>Build &gt; Run Build Insights on Solution &gt; Improve Build Performance<\/strong> to open the GitHub Copilot Chat window. This will start a session to optimize the build performance of your entire solution.<\/p>\n<h4>From The Solution Explorer Context Menu<\/h4>\n<p>Right-click the solution node in Solution Explorer and select <strong>Improve Build Performance on Solution<\/strong>. This will open a Copilot Chat session scoped to your full solution.<\/p>\n<h4>From The Build Insights View<\/h4>\n<p>If you already have an. etl trace file open from Build Insights, click the <strong>Improve<\/strong> button from the diagnostics session view. This reuses data from the existing trace results and will not start a new analysis until the current changes are processed.<\/p>\n<p>These entry points work well when you want to analyze your entire build. Use project-specific builds when you want to focus on one project.<\/p>\n<h3>A Few Things to Keep in Mind<\/h3>\n<ul>\n<li>The agent scopes your build but not the trace collection. vcperf and Build Insights work the same way as before.<\/li>\n<li>If your selected project has deep dependency chains, the build may still take time. The feature reduces scope, not dependency depth.<\/li>\n<li>For CMake, all selected targets must share a common root project. This is a limitation of the underlying CMake APIs.<\/li>\n<li>Per-file builds are not currently supported.<\/li>\n<\/ul>\n<h3>Feedback Wanted!<\/h3>\n<p>This feature exists because of your feedback, and we want to keep improving. Whether you work on a large game engine, an enterprise monorepo, or a smaller project, we would love to hear how project-specific builds work for you.\nIs there a scenario we have not covered? A workflow that could be smoother? We encourage you to share your thoughts with us by filling out this <a href=\"https:\/\/www.surveymonkey.com\/r\/5YBM8BX\">survey<\/a>, commenting below, through <strong>Help &gt; Send Feedback<\/strong> in Visual Studio, or on X (<a href=\"https:\/\/x.com\/visualc\">@VisualC<\/a>). Thank you for your continued support!<\/p>\n<p>Learn more: <a href=\"https:\/\/aka.ms\/BuildPerfCppDocs\">Documentation for GitHub Copilot build performance for Windows | Microsoft Learn<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>We are excited to announce that GitHub Copilot build performance for Windows now supports project-specific builds! Available in the latest Visual Studio Insiders, you can target a single MSBuild project or CMake target instead of analyzing your entire solution. For game developers and teams working with large codebases, this eliminates the need to wait for [&hellip;]<\/p>\n","protected":false},"author":39811,"featured_media":36480,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[3948,1],"tags":[3954,3960,140,331],"class_list":["post-36476","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-build-optimization","category-cplusplus","tag-build-insights","tag-build-performance","tag-c","tag-game-development"],"acf":[],"blog_post_summary":"<p>We are excited to announce that GitHub Copilot build performance for Windows now supports project-specific builds! Available in the latest Visual Studio Insiders, you can target a single MSBuild project or CMake target instead of analyzing your entire solution. For game developers and teams working with large codebases, this eliminates the need to wait for [&hellip;]<\/p>\n","_links":{"self":[{"href":"https:\/\/devblogs.microsoft.com\/cppblog\/wp-json\/wp\/v2\/posts\/36476","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/devblogs.microsoft.com\/cppblog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/devblogs.microsoft.com\/cppblog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/cppblog\/wp-json\/wp\/v2\/users\/39811"}],"replies":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/cppblog\/wp-json\/wp\/v2\/comments?post=36476"}],"version-history":[{"count":1,"href":"https:\/\/devblogs.microsoft.com\/cppblog\/wp-json\/wp\/v2\/posts\/36476\/revisions"}],"predecessor-version":[{"id":36485,"href":"https:\/\/devblogs.microsoft.com\/cppblog\/wp-json\/wp\/v2\/posts\/36476\/revisions\/36485"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/cppblog\/wp-json\/wp\/v2\/media\/36480"}],"wp:attachment":[{"href":"https:\/\/devblogs.microsoft.com\/cppblog\/wp-json\/wp\/v2\/media?parent=36476"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/cppblog\/wp-json\/wp\/v2\/categories?post=36476"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/cppblog\/wp-json\/wp\/v2\/tags?post=36476"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}