使用 Visual Studio Code 的代码优化扩展,可以为运行中的代码优化确定的性能问题生成代码修复建议。 .NET 应用。
本文介绍如何在 Visual Studio Code 中将扩展与 GitHub Copilot 配合使用。
先决条件
- 安装最新版本的 Visual Studio Code
- 使用 有效的 GitHub Copilot 订阅注册并登录到 GitHub 帐户。
- 安装 GitHub Copilot Chat 扩展。
- 为 .NET 应用程序启用以下服务:
安装代码优化扩展(预览版)
安装 Visual Studio Code 的代码优化扩展。
首次运行扩展时,可能会看到两个对话框提示,要求登录 Azure 并连接到 GitHub Copilot 帐户。
使用扩展修复代码中的性能问题
安装后,代码优化扩展(预览版)会引入一个名为 @code_optimizations
的代理,它包含一些命令或“技能”,你可以在 GitHub Copilot 中使用这些内容来处理代码优化问题。
- 在 Visual Studio Code 中,打开保存 .NET 应用程序的存储库,并启用代码优化。
- 打开 GitHub Copilot 聊天。
在 Visual Studio Code 中使用代码优化扩展有三个选项:
选项 1:连接到 Azure 中的代码优化
虽然在应用程序上使用启用了代码优化的扩展需要更多的设置步骤,但会在代码中收到更准确的修复建议。
验证应用程序的代码优化
若要开始使用,请确保已认可针对应用程序的代码优化。
在 Azure 门户中导航到 Application Insights 资源。
选择“调查”“性能”>。
在“性能”选项卡中,点击顶部菜单的“代码优化”按钮。
记下以下内容:
- Application Insights 资源名称。
- 用于登录 Azure 门户的帐户。
调用扩展
通过执行以下命令调用扩展,将占位符替换为 Application Insights 资源名称或应用程序 ID。
@code_optimizations /insights <YOUR_APPLICATION_INSIGHTS_RESOURCE_NAME_OR_APPLICATION_ID>
该命令从代码优化中提取最重要的问题,将这些问题与本地存储库中的源代码相匹配,并提出修复/建议。 它会自动生成最佳推荐。
按照 Copilot 响应中的提示创建其他问题的修复方案。
选项 2:根据代码优化中的 GitHub 问题优化代码
除了 @code-optimizations /insights
命令之外,还可以使用 /optimize
命令来解决代码中的问题。 该扩展提供了两种方法来使用 /optimize
命令:
- 使用代码优化问题编号。
- 直接在 Visual Studio Code 中选择代码。
使用代码优化问题编号
在 Azure 门户中运行 /optimize
命令,并同时使用代码优化服务创建的 Azure DevOps 或 GitHub 工作项编号。
创建代码优化工作项
在门户中,从结果中选择一个性能问题。
在详细信息窗格中,单击“ 创建工作项”。
从下拉列表中,选择是要通过 Azure DevOps 还是 GitHub 创建问题。
从下拉列表中选择一个项目,或创建新项目。
如果创建新项目,请输入项目 URL,然后单击“ 添加项目”。
单击该开关将问题标记为 “任务 ”或 “Bug”。
单击“ 创建工作项”。
/optimize
运行命令
在 Visual Studio Code 中,使用 GitHub Copilot 调用带有你在 Azure 门户的代码优化服务中创建的问题编号的
/optimize
。 在下面的示例中,“5”代表要修复的 GitHub 问题编号。@code-optimizations /optimize 5
命令:
- 提取问题的主体内容,其中包括调用堆栈、CPU使用率等信息。
- 使用代码优化模型生成代码修复。 此操作可能需要一些时间。
使用嵌入的聊天选项对代码修复进行任何其他更改。 可以让 Copilot 帮你完成以下任务:
- 将方法名称从
<A>
更新为<B>
。 - 使用
API X
而不是API Y
等等。
- 将方法名称从
直接在 Visual Studio Code 中进行代码选择
直接为选定的代码触发 /optimize
。 使用此方法,可以主动优化一些你认为存在性能问题的代码。
- 选择可能存在问题的代码,或将光标悬停在存在性能问题的方法上。
- 在 Copilot 聊天中调用
/optimize
命令。
然后,可以运行基准/负载测试来确保更改能够提高性能,并运行单元测试来确保代码语义得到保留。
选项 3:没有代码优化
可以在未启用代码优化的情况下使用 Visual Studio Code 扩展。 虽然这种方法需要的设置时间较少,但你可能会收到不太准确的修复建议。
选择可能存在问题的代码,或将光标悬停在存在性能问题的方法上。
在 Copilot 聊天中调用
/optimize
命令。