提升Visual Studio 2012的响应能力

微软开发经理Eric Knox最近发表了一篇文章,其中提供了对VS2012编辑性能所做出的内部改善的深度观点。 Knox的团队改进了他们的方法,不仅仅使用了PerfWatson,还结合使用了一种叫做即时延迟跟踪器(Immdiate Delay Tracker,IDT)的新工具。

PerfWatson收集了“迷你的堆信息,让微软可以确定在一天中的特定时间点,运行了哪些Visual Studio的代码”。 因为工程师想要基于每次击键来监控VS的性能,他们把IDT设计为“更细粒度的度量系统”,它使用了Event Tracing for Windows(ETW)。

ETW是一种操作系统提供的通用目的、高速的跟踪工具。它使用了内 核实现的缓存和日志机制,从而为用户态应用程序和内核态设备驱动所引发的事件都提供了跟踪机制。此外,ETW让你可以动态地启用和禁用日志功能,使得在生 产环境中执行详细跟踪更容易,而不需要重启操作系统或者应用程序。

据Knox所说,基于ETW的方法的优势在于,“团队不会像 PerfWatson一样使用单一的栈,而是每毫秒都会获得调用栈,然后聚合分析栈的集合,而不是单一时间点的数据。” 然后,使用VS的工程师可以获得有用的性能信息,同时最小化观察程序的影响。 Knox的团队监控了微软的内部VS用户,实现了修正之后,记录了以下获得的性能数据:

  Visual Studio 2010 当前
C#

 

 

50毫秒以上的按键 15.05% 7.87%
100毫秒以上的按键 10.26% 0.62%
200毫秒以上的按键 1.50% 0.06%
C++

 

50毫秒以上的按键 11.85% 0.48%
100毫秒以上的按键 7.88% 0.20%
200毫秒以上的按键 6.85% 0.07%
VB

 

 

50毫秒以上的按键 0.83% 0.60%
100毫秒以上的按键 0.13% 0.06%
200毫秒以上的按键 0.06% 0.06%

由于VS 2012 RC已经发布,读者可以自己使用产品,并判断这些变化是否显著。

查看英文原文:Improving Responsiveness in Visual Studio 2012

译者 侯伯薇 是InfoQ中文站架构社区编辑,有多年对日和国内项目开发经验,目前关注企业中技术与实际业务之间的融合和协作。

This entry was posted in IDE. Bookmark the permalink.

发表评论

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / 更改 )

Twitter picture

You are commenting using your Twitter account. Log Out / 更改 )

Facebook photo

You are commenting using your Facebook account. Log Out / 更改 )

Google+ photo

You are commenting using your Google+ account. Log Out / 更改 )

Connecting to %s