ANTS Performance Profiler 8:支持对 Web 请求、异步代码和 WinRT 的性能剖析

  • Anand Narayanaswamy
  • 臧秀涛

2013 年 2 月 18 日

话题:语言 & 开发

位于英国的Red Gate Software有限公司最近发布了ANTS Performance Profiler 8 Beta,支持对Web 请求、异步代码和 Windows 商店应用的性能剖析。该版本还支持SharePoint 2013和一个新的时间线,这使开发者不但能够监控应用程序的性能,还能深入到想要检查的具体区域。

Web 请求剖析使开发者能够捕获向外的 HTTP 请求,其中包括请求和响应的头信息。最新的版本还能剖析用C#VB编写的Windows 商店应用。此外,如果使用 JavaScript、HTML5 和 C++,也能监控托管代码的状态。

最新的 beta 版以这样的方式进行了更新,可以更快速地启动剖析会话,用户也得以快速获得结果。而且开发者能够使用任何浏览器来剖析 IIS、IIS Express 和 Web Dev Server 上的 ASP.NET 网站。

InfoQ 采访了 Red Gate Software 公司.NET 工具部门的产品营销经理 Ben Emmett,希望了解 ANTS Performance Profiler 8 Beta 的更多信息。

InfoQ:ANTS Performance Profiler 用于什么用途?

ANTS Performance Profiler 能够显示出性能瓶颈,让开发者理解并改进.NET 应用程序的性能。它设计用于开发过程的任何阶段,既能作为例行检查的一部分来保证可接受的性能,也能用于发现活跃代码中急需解决的性能问题。

InfoQ:ANTS Performance Profiler 与其他竞争产品有何不同?

最难解决的性能问题往往不孤立存在于应用程序的某一部分,相反它是系统不同部分相互作用的结果。ANTS Performance Profiler 是唯一能够显示代码相关数据存取请求(数据库、HTTP 和文件 I/O)的.NET 工具。利用该工具,可以简单地跟踪过多的请求,或者过多的长请求,并返回到导致这些请求的源代码。这对理解与 ORM 有关的性能问题特别有用,而且它提供了一定程度的理解,否则需要使用 4 个独立工具。

ANTS Performance Profiler 对获得结果的速度也有严格要求。用户告诉了我们诊断性能问题时的最关键信息,因此为了更简单地表现这些信息,我们在新版本中重构了大部分接口。最糟糕的是,性能剖析就像打开一层套一层的放虫子的盒子那么麻烦,但不管潜在问题是简单还是复杂,ANTS Performance Profiler 都能给出清晰、有意义的结果。

InfoQ:如果使用了 ANTS Performance Profiler 8,应用程序就会有性能改进吗?

大多数用户都得到了重大性能改进,我们经常听到用户说他们的代码速度提升了几个数量级。当然,精确的获益情况依赖于应用,但要找到一点好处都没得到的软件可是相当困难的。

InfoQ:剖析 Windows 商店应用有何必要性?

速度对任何应用程序都很重要,尤其对 Windows 商店应用而言,快速响应的 UI 非常重要,而且低效的应用会非常耗电。

因此,微软对 Windows 商店应用有严格的性能要求,不满足性能要求很可能会被 Windows 商店拒绝。包括限制应用后台使用处理器的时间(每 2 个小时只能使用 1 秒 CPU 时间),应用启动时间限制为 5 秒,还会杀掉任何阻塞 UI 线程超出 50 毫秒的应用。

要避免与这些限制产生冲突,唯一的方式就是理解应用的性能,而剖析又是理解应用性能的最佳手段。

InfoQ:剖析 Web 请求和异步代码有什么好处?

C#5 中的 Async/Await 关键字简化了异步代码的编写,但理解代码在背后是如何运行的实际仍很困难。其他剖析器只显示 CLR 在后台为异步方法创建的底层状态机。我们很难把异步方法中完成的工作和引起它运行的方法关联起来。ANTS Performance Profiler 可以给出与编写的代码直接相关的结果,而非强迫用户理解 Async 背后的实现。

Web 请求剖析能够显示出应用程序是如何与其他 Web 服务器交互的。开发者可以快速识别出长期运行的、重复的或失败的请求,也可以看到关于这些请求的本质的信息。数据存取是导致性能瓶颈的常见且越来越严重的原因,我们的工具更大 的策略就是向开发者展示他们所需要知道的关于数据存取的一切信息,Web 请求剖析也是该策略的一部分。

InfoQ:能否在 Visual Studio 2012 中使用 ANTS Performance Profiler?

ANTS Performance Profiler 是独立的工具。丰富的 UI——特别是性能时间线——意味着它不适合在 Visual Studio 内运行,但大部分开发者喜欢更多的功能。所以我们提供了一个 VS 扩展,可以基于 Visual Studio 内的项目设置自动配置并启动剖析会话。

InfoQ:你能否透露一下 ANTS Performance Profiler 未来的路线图?

我们打算三月份发布第 8 版。之后我们会继续努力,并特别改进对 Web 开发者的支持。我们也会对它的姐妹工具 ANTS Memory Profiler 做出一些大的改进。

查看英文原文ANTS Performance Profiler 8: Web request, Async code, WinRT

语言 & 开发