BT

Improving Responsiveness in Visual Studio 2012

by Jeff Martin on Jun 15, 2012 |

A recent article by Microsoft Development Manager Eric Knox provides an in-depth look at the internal improvements being made to the editing performance of VS2012. Knox's team has evolved their approach to use more than PerfWatson, and has incorporated the use of a new tool called Immediate Delay Tracker (IDT).

PerfWatson works by collecting "a mini heap dump which allows [Microsoft] to [determine] what Visual Studio code is running at a particular point during the day". As engineers want to monitor VS' performance on a per-keystroke basis, they devised IDT which is "a more fine-grained measurement system" that utilizes Event Tracing for Windows (ETW).

ETW is a general-purpose, high-speed tracing facility provided by the operating system. Using a buffering and logging mechanism implemented in the kernel, ETW provides a tracing mechanism for events raised by both user-mode applications and kernel-mode device drivers. Additionally, ETW gives you the ability to enable and disable logging dynamically, making it easy to perform detailed tracing in production environments without requiring reboots or application restarts.

The advantage of the ETW-based approach according to Knox is that "instead of a single stack like PerfWatson, [the team] can get a call stack every millisecond and then analyze the collection of stacks in aggregate rather than just a single point in time." Engineers working on VS can then obtain useful performance information while minimizing the observer effect. Knox's team monitored internal VS users at Microsoft, and after implementing corrections documented the following performance gains:

 

Visual Studio 2010

Current

C#

 

 

Keys above 50ms

15.05%

7.87%

Keys above 100ms

10.26%

0.62%

Keys above 200ms

1.50%

0.06%

C++

 

Keys above 50ms

11.85%

0.48%

Keys above 100ms

7.88%

0.20%

Keys above 200ms

6.85%

0.07%

VB

 

 

Keys above 50ms

0.83%

0.60%

Keys above 100ms

0.13%

0.06%

Keys above 200ms

0.06%

0.06%

Now that VS 2012 RC is available, have readers can use the product for themselves and determine how visible these changes are.

Hello stranger!

You need to Register an InfoQ account or or login to post comments. But there's so much more behind being registered.

Get the most out of the InfoQ experience.

Tell us what you think

Allowed html: a,b,br,blockquote,i,li,pre,u,ul,p

Email me replies to any of my messages in this thread

How does it fair on VS2008? by Sawan Ruparel

Can you also publish the numbers for VS2008?

Allowed html: a,b,br,blockquote,i,li,pre,u,ul,p

Email me replies to any of my messages in this thread

Allowed html: a,b,br,blockquote,i,li,pre,u,ul,p

Email me replies to any of my messages in this thread

1 Discuss

Educational Content

General Feedback
Bugs
Advertising
Editorial
InfoQ.com and all content copyright © 2006-2014 C4Media Inc. InfoQ.com hosted at Contegix, the best ISP we've ever worked with.
Privacy policy
BT