• 2016年8月23日,Android 7.0(N)正式通过OTA向Nexus 5X/6P 用户推送啦
  • 2016年8月3日,Windows 10 周年版已经可以通过系统更新来升级了,更加人性化的功能等你发现
  • 美Win网的朋友,现在可以使用QQ号和微博帐号来快速登录了,赶紧参与到大家的讨论中来吧!
  • 美Win网问答社区现在已经正式开放了,有关Windows 系统的任何疑问都可以在问答中心提问,当然你也可以参与回答其他网友的问题!

微软详解 Visual Studio 2015 中性能与诊断工具使用

Microsoft 宁茜 来源:原创 10163次浏览 2个评论

Visual Studio 2015 中的新功能

微软在 Visual Studio 2013 中首次推出了性能与诊断工具,而在最新的 Visual Studio 2015 中,他们改良了一些功能:

  1. 当您在进行侦错时就可以使用诊断工具:您可以检视 CPU 使用率、内存用量、进行快照及使用 PerfTips 计算程序代码运行时间,而不必离开侦错程序。
  2. IntelliTrace 成为诊断工具的一部份,这将提供一个更好用的使用体验。
  3. 加入新的诊断工具:Network Usage 及 Application Timeline。
  4. 加入新的平台支持:Windows 7、桌面应用程序、通用 Windows 应用程序、以及 Azure Web 应用程序
  5. 优化了选单项目来放入所有的更新。

微软详解 Visual Studio 2015 中性能与诊断工具使用

接下来我会针对这些改良的项目做进一步的说明。

使用 debugger 早期发现性能问题

我们的目标是要更容易搜集性能数据,如此一来人人都可以很容易进行性能分析,而且不必改变原本的工作流程。 为了达到这样的目标,我们将在 Community、Professional、Enterprise 版的 Visual Studio 中,把 PerfTips 及诊断工具Windows放进除错器的默认功能之中。

PerfTips 会在程序侦错进入断点时,显示这段程序代码执行了多久的时间,您只需要看行末的时间就可以得知:

微软详解 Visual Studio 2015 中性能与诊断工具使用

而诊断工具Windows则会在事件图形及事件表格中记录所有 PerfTips 的历史记录,而且可以帮您与 CPU 及内存的用量图表建立关联:

微软详解 Visual Studio 2015 中性能与诊断工具使用

如果您在程序侦错并进入断点切换至内存用量的页签,您可以拍下、查看或是找出内存用量快照间的差异:

微软详解 Visual Studio 2015 中性能与诊断工具使用

这些改良不仅是在侦错时更容易测量程序性能,还提供了许多强大的工具协助您分析性能,这样一来,您就可以控制程序的执行并且查看变量数值以取得更多信息来解决性能的问题,下面显示一个很棒的例子,就是在查看内存快照时可以同时检视变量信息:

微软详解 Visual Studio 2015 中性能与诊断工具使用

如果在除错器中没有内存用量分析工具是没有办法做到的。

新的 IntelliTrace 界面及操作体验

上述的功能我们都已经在 Visual Studio 2015 中加入免费的 Community 版中(Professional, Enterprise 版当然也有),而在 Enterprise 版本中,您可以看到在诊断工具Windows中整合了全新设计的 IntelliTrace 操作界面。 在程序侦错时,IntelliTrace 可以帮助您自动撷取有取的事件,并且在 Events 页签中呈现在事件图表中:

微软详解 Visual Studio 2015 中性能与诊断工具使用

只要在事件中点两下,Visual Studio 就会带你到对应的程序代码处,并且显示这段程序代码的呼叫堆栈以及呼叫的时间。 比方说,若在上图中的例外事件上点两下,虽然程序中已经处理了例外,但您还是可以看到呼叫堆栈。

微软详解 Visual Studio 2015 中性能与诊断工具使用

IntelliTrace 撷取的事件能够帮助您快速地解决困难的 bugs,而且额外的事件还可以帮助您解决性能的问题,比方说,您可以在 Debug.Output 叙述中使用时间戳来判断某段程序代码的运行时间。

新的诊断工具及支持新平台

到这里,您也许好奇是否不在侦错时也能使用诊断工具呢? 答案当然是 “可以的”,当您在侦错程序时,其实是会有用户感觉不到额外的性能影响,在不侦错时使用诊断工具能提供更完整的性能分析,这对于要发行的软件而言可以有效地优化性能。 也因为如此,我们持续优化原本不需侦错器的诊断工具,这是免费的。

在这次发行的工具中,我们加入了两个新工具:

  • Application Timeline: 检视 WPF、通用 Windows 项目、以及Windows 应用商店应用程序详细的 UI 执行性能信息,这将取代只支持 Windows 应用商店应用程序的 XAML UI 响应性工具。
  • Network Usage: 检视使用 WinRT HttpClient API 的通用 Windows 项目的网络用量及网络存取性能。

当然,您还是可以使用在 Visual Studio 2013 里就有的好用性能分析工具,当作回顾,这里再介绍我们在 Visual Studio 2013 里加入的好用工具:

  • CPU Usage: 检视您的 C#, VB, C++ 或 JavaScript 中哪个函式最吃 CPU。
  • GPU Usage: 检视您的应用程序如何运用 GPU,并且了解 CPU/GPU 的互动。
  • Memory Usage: 监控内存的使用状况,并且为 C#, VB, 以及 C++ 的程序代码做快照,如此一来便能清楚地了解应用程序如何使用内存,并且找出 memory leak 的问题。

以及在 Visual Studio 2013 RTM 时加入的工具:

  • JavaScript Memory: 检视针对通用 Windows 项目及 Windows 应用商店应用程序的 JavaScript 程序代码的内存使用状况,以及用来找出 memory leak 的问题。
  • HTML Timeline: 针对通用 Windows 项目及 Windows 应用商店应用程序有着丰富的操作界面,这个工具能帮助您区分 JavaScript 及操作界面的性能状况。
  • Performance Wizard: 这是我们传统的分析工具,用在桌面应用程序及 ASP.NET 应用程序。

而如同您所期待的,这些工具(除了 Performance Wizard)都能适用在新的通用 Windows 项目上,我们同样让部份工具,像是 CPU Usage, Memory Usage, Application Timeline 以及 Performance Wizard 能支持 Windows 7 的桌面应用程序。

最后值得一提的是,我们的 CPU Usage 工具可以用在 Azure Web App 的在线环境,如果您的 Azure Web App 使用基本或标准的方案,您可以在服务器总管中右键选择开始分析:

微软详解 Visual Studio 2015 中性能与诊断工具使用

一但您开始分析后,除了可以右键选择停止分析外,还能在 Visual Studio 中查看 CPU 使用状况的报告,当然您也可以在 Azure App Service 的网站控制管理仪表板(kudu)上搜集分析的数据。

更新的菜单选单:分析工具在哪里?

我们在菜单选单上做了一些调整,以便加入所有的新功能,在 Visual Studio 2013 中,您可以在 Debug 及 Analyze 选单中都找得到分析工具,在 Analyze 选单中您可以找到 Performance and Diagnostic hub 以及较旧的性能浏览器,而在 Visual Studio 2015 我们将它们移出 Analyze 选单, 统整到 Debug 选单中,所以我们打算将用户导向单一并优化过的入口来使用诊断工具。 这也许会让一些用户好奇:“在 Visual Studio 2015 中要到哪里找到分析工具? ”不过不用担心,它们都还在!

如果您开启 Debug 选单,您可以看到诊断工具的三个入口:

  1. Show Diagnostic Tools (Ctrl + Alt + F2). 这会打开诊断工具Windows,让您在侦错应用程序时可以使用诊断工具。 这个Windows会在支持的项目类型在侦错时自动显示出来。
  2. Show Diagnostic Tools Without Debugging (Alt + F2). 这会带您到诊断工具的启始页面,您可以在该页面中启动诊断工具而不需要连接除错器,如此一来您便能够完整分析应用程序的性能而不会有额外的性能影响。 这个部份与 Visual Studio 2013 中的 Performance and Diagnostic hub 功能相同。
  3. Profiler. 这个选单项目是为了熟悉 “Profiler” 这个关键词的用户所设计的,这里包括新的诊断工具以及旧的性能浏览器。 保留性能浏览器的理由是它还是提供了一些我们还没在新的诊断工具中实作的进阶功能(像是连接至程序进行分析)。
    所以您还是能在 Debug 选单中找到新的及过去熟悉的诊断工具。

意见回馈及资源

我们很兴奋地宣布我们新的与除错器整合的诊断工具来帮助开发人员,同时我们也不断在增加这个工具的功能,所以您还是可以期待接下来会出现更多的新功能! 如果您试用了这些新工具的功能,我们很期待您能给予我们任何建议,欢迎您使用 Visual Studio 中传送笑脸的功能。

(来源:Developer Tools Blogs


点赞 (31)or分享 (0)
发表我的评论
取消评论
表情 贴图

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址
(2)个小伙伴在吐槽
  1. 网站非常漂亮!
    luoweifu2016-05-04 13:56 回复 Windows 7 | Chrome 50.0.2661.87
    • iMeiwin
      你的也是!!
      iMeiwin2016-05-04 13:56 回复 Windows 10 | Chrome 50.0.2661.94