我们很高兴地宣布,Copilot Profiler Agent 已在 Visual Studio 2026 Insider 中推出,它是一款直接内置在 Visual Studio 中的人工智能性能助手。无需再盯着没完没了的调用树或一长串令人费解的数字,疑惑着“我该从哪里开始呢?”—— Copilot Profiler Agent 将改变这一状况。

  您现在得到的不是原始数据,而是一个人工智能伙伴,它不仅能指出真正的瓶颈,还能解释正在发生的情况、提出修复建议、编写基准测试,甚至能在一个流畅、有引导性的循环中验证改进效果。

  这就好比有一位性能工程师坐在您身旁,而且还不用起身去买咖啡。从今天起,借助 GitHub Copilot 的强大功能,它已在最新版的 Visual Studio 中准备就绪,随时可以投入使用。现在就下载 Visual Studio 2026 Insider 吧。

来认识一下 Copilot Profiler Agent

  Profiler Agent 是 Visual Studio 中首款此类 AI 助手,旨在与 GitHub Copilot 无缝协作。

  它能为您带来以下功能:

  - 分析 CPU 使用率、内存分配和运行时行为

  - 找出代码中最耗费资源的瓶颈

  - 生成新的 BenchmarkDotNet 基准测试(或优化现有测试)

  - 提出可立即应用的切实可行的性能改进建议

  - 通过前后指标验证修复效果,全程在流畅的引导循环中进行

  最棒的是,使用起来就像在 Copilot Chat 中提问一样简单。您可以:

  - 直接标记它:@profiler 我的应用为什么很慢?

  - 或者在 Copilot Agent 模式下用通俗的语言提问:“为什么我的帧率下降了?”

  (只需确保在 Copilot Chat 工具菜单中启用了 Profiler Agent。)

  现在,让我们来看看它的实际应用。在下面的演示中,您会看到我让智能体针对 SharpZipLib 中一个现有的基准测试进行优化。从那时起,它便处理了所有事情:运行基准测试、指导我完成各项更改、应用有针对性的性能修复,以及通过重新运行基准测试来验证结果。最终,仅通过一个提示就实现了显著的性能提升。

真实的代码,真实的影响

  当我们着手构建 Copilot Profiler Agent 时,我们确定了一件事:在一个“hello world”应用上展示它根本证明不了什么。真正的开发者不会在玩具代码上遇到困难。真正的考验在于它能否处理混乱、性能要求高且达到生产级别的项目。

  因此,我们目标远大:让 Profiler Agent 瞄准 100 个使用最广泛的开源库和应用程序 —— 这类代码为您可能每天都在使用的框架、服务和应用程序提供支持。

  结果远远超出了我们的预期。Profiler Agent 能够:

  - 发现您自己无法察觉的隐藏瓶颈

  - 提出切实可行、可操作的修复方案

  - 自动生成基准测试以验证改进效果

  - 将见解转化为实际项目中的真实拉取请求

  我们已经向 CSVHelper、NLog、Serilog 等项目提交了拉取请求,这些都是由 Profiler Agent 的见解所驱动的。

  而社区的反馈已经说明了一切:

  “看了那个 YouTube 视频,简直太神奇了。令人惊叹的是,它竟然能够识别出多个表达式编译可以合并成一个表达式编译。”—— NLog维护者

  我们很快将发布详细的案例研究,逐步详细介绍 Profiler Agent 是如何处理这些项目的。

  也不仅仅是开源软件。我们推出 Profiler Agent,供微软各团队内部试用,其结果同样令人大开眼界。

  以下是一位首席工程师的经历:

  “我有一个类,它包装了一个字典,并提供了有限的一组操作。我想让这个类支持 foreach 循环,所以我添加了 IEnumerable<TKey, TValue> 接口,但与直接迭代内部字典相比,这导致了内存使用量和执行时间的大幅增加。在与 Profiler Agent 进行了几次提示词迭代后,它让我意识到 —— 我根本不需要 IEnumerable 接口,只需暴露一个转发到内部字典的 GetEnumerator 方法就可以了。”

接下来会是什么

  这仅仅是个开始。Profiler Agent 目前支持高 CPU 使用率分析、.NET 对象分配和内存使用分析,更多功能即将推出。

  我们很期待看到您在自己的工作流程中如何使用它,无论是调整游戏引擎、优化服务,还是仅仅加快缓慢的用户界面速度。所以请尝试使用它,可以通过参与简短的调查来分享您的结果。

  关注 Visual Studio 团队的 Twitter 账号 @VS_Debugger、@VisualStudio,以及 YouTube 和 LinkedIn 账号,与我们保持联系。

  让性能分析普及化,每次都能在性能上取得胜利!

原文链接:https://devblogs.microsoft.com/visualstudio/copilot-profiler-agent-visual-studio/

【译】让性能民主化:Copilot Profiler Agent 在实际代码中的应用的更多相关文章

  1. SQL Server性能优化工具Profiler

    SQL Server Profiler是什么 SQL Server Profiler是一个界面,用于创建和管理跟踪并分析和重播跟踪结果. 这些事件保存在一个跟踪文件中,稍后试图诊断问题时,可以对该文件 ...

  2. JVM 性能调优实战之:使用阿里开源工具 TProfiler 在海量业务代码中精确定位性能代码

    本文是<JVM 性能调优实战之:一次系统性能瓶颈的寻找过程> 的后续篇,该篇介绍了如何使用 JDK 自身提供的工具进行 JVM 调优将 TPS 由 2.5 提升到 20 (提升了 7 倍) ...

  3. JS代码中!!的用法,以及代码性能对比

    一.!!的理解 解释: !!的意思就是把一个任意类型的值转换为布尔类型的值,一个!是取非 再一个!又取非,相当于把这个数据转换为boolen类型了. 使用场景: 常常用在if(a).if(!!a)这样 ...

  4. [Spark性能调优] 第四章 : Spark Shuffle 中 JVM 内存使用及配置内幕详情

    本课主题 JVM 內存使用架构剖析 Spark 1.6.x 和 Spark 2.x 的 JVM 剖析 Spark 1.6.x 以前 on Yarn 计算内存使用案例 Spark Unified Mem ...

  5. 使用阿里开源工具 TProfiler 在海量业务代码中精确定位性能代码 (jvm性能调优)

    技术交流群:233513714 本文是<JVM 性能调优实战之:一次系统性能瓶颈的寻找过程> 的后续篇,该篇介绍了如何使用 JDK 自身提供的工具进行 JVM 调优将 TPS 由 2.5 ...

  6. 诊断Java代码中常见的数据库性能热点问题应该这么做!

    “你的Java应用程序的性能是怎样诊断和优化的?不妨看看这两位西医的方子.如果你有更好疗效的药方,也欢迎在评论区告诉我们. 当我在帮助一些开发者或架构师分析及优化Java应用程序的性能时,关键往往不在 ...

  7. Unreal Engine 4 性能优化工具(Profiler Tool)

    转自:http://aigo.iteye.com/blog/2296548 Profiler Tool Reference https://docs.unrealengine.com/latest/I ...

  8. 【应用程序见解 Application Insights】使用Azure Monitor Application Insights Agent获取Azure VM中监控数据及IIS请求指标等信息

    问题情形 为了使用Application Insights也可以监控Azure VM中的相关性能数据,如CPU, Memory,IIS Reuqest等信息,可以在VM中开始一个一个扩展插件: Azu ...

  9. java开发代码中的50个性能优化细节

    在java程序中,性能的大部分原因并不在java与语言,而是程序本身.养成好的编码习惯非常重要,能够显著地提升程序性能. 1:尽量在合适的场合使用单例 使用单利可以减轻加载的负担,缩短加载时间,提高加 ...

  10. 【译】索引进阶(十三):SQL SERVER中的索引碎片【下篇】

    原文链接:传送门. 通用碎片模式 如果一个表具有多个索引,那么这些索引便具有多个索引键,因而也具有不同的顺序.通常情况下,这些索引中的一两个展示了之前描述过的升序插入模式,而其他的通常展示了随机插入模 ...

随机推荐

  1. C# 列出所有双色球的组合

    using System; class Program { static void Main(string[] args) { int[] redBalls = new int[33]; for (i ...

  2. Xamarin.Android 设置BaseAdapter 的基础公共类

    https://blog.csdn.net/sinat_26562875/article/details/51447785 /// <summary> /// 通用适配器 /// < ...

  3. 前端开发系列088-Node篇之url

    本文对Node的内置模块url进行介绍,包括基本情况和简单使用. 一.模块的内容 url是Node的内置核心模块之一,无需单独安装可以直接在代码中通过var url = require("u ...

  4. K8s 自定义调度器 Part1:通过 Scheduler Extender 实现自定义调度逻辑

    本文主要分享如何通过 Scheduler Extender 扩展调度器从而实现自定义调度策略. 1. 为什么需要自定义调度逻辑 什么是所谓的调度? 所谓调度就是指给 Pod 对象的 spec.node ...

  5. GraphQL的N+1问题如何被DataLoader巧妙化解?

    扫描二维码 关注或者微信搜一搜:编程智域 前端至全栈交流与成长 发现1000+提升效率与开发的AI工具和实用程序:https://tools.cmdragon.cn/ N+1问题本质解析 当使用Gra ...

  6. ETL中双流合并和多流合并的区别

    一.ETL工具 ETLCloud数据集成平台集实时数据集成和离线数据集成以及API发布为一体的数据集成平台.与其他开源数据集成工具相比,采用轻量化架构.具有更快的部署速度.更快的数据传输速度.更低的运 ...

  7. ICEE-MOS+BJT: 场效应管和三极管的比较

    场效应管是在三极管的基础上而开发出来的. 三极管通过电流的大小控制输出,输入要消耗功率. 场效应管是通过输入电压控制输出,不消耗功率. 场效应管和三极管的区别是电压和电流控制,但这都是比较的. 电压控 ...

  8. (译) 理解 Prometheus 的范围向量 (Range Vector)

    Prometheus 中 Range Vector 的概念是有一点不直观的,除非你彻底阅读并理解了官方提供的文档.谁会这样做呢,去读官方文档?大多的人应该会花些错误的时间去做了一些错误的事情,然后随机 ...

  9. codewarrior_v5.2版本添加MCU型号

    最近准备搞9S12G48的软件开发工作,在准备软件开发环境的时候遇到一个很大的难题:codewarrior5,2版本里面没有我想要的单片机型号 开发的第一步就出现问题,让我很是苦恼,于是我想着如何解决 ...

  10. heapdump深度利用之信息泄露篇

    前言 在Java里有一些渗透场景可以获得堆内存也即是heapdump比如有的应用存在某个功能可以获取heapdump.springboot的/actuator/heapdump也可以获取.但是网上比较 ...