Back in Mai, Beta 1 was released of Visual Studio 2010. Since then the Visual Studio development team, including performance guru Rico Mariani, have been working hard on improving performance based on customer feedback.
Though Rico is not in the position to reveal the exact parts of Visual Studio being improved, he does go into detail of the technical issues they have been working on:
…the product is a lot more multi-threaded than previous versions and in some cases synchronization between threads was less than great. In some cases code designed to defer background work to keep the foreground responsive was actually slowing things down; in two cases I actually took out Sleeps, no joke! In some cases threads where synchronizing when they did not need to do so, destroying effective parallelism. In other cases latent parallelism designed into the system wasn’t exploited at all, and rounding things out there were cases where there should have been parallelism in the design and it was totally absent.
A quick look at the Microsoft Connect site reveals several reported performance problems. Weston Hutchins, Visual Studio PM, replies the following to a ticket about “VS2010 being slower than VS2008”:
We have a dedicated perf team that has been working on issues such as startup for the past few months. We've managed to trip around 30% of the startup time since Beta 1 but we still are slower than Visual Studio 2008. Part of the reason is that we are now bootstrapping the CLR which is causing an increase in the time. We're looking to further improve this number but it's unlikely we'll get to VS 2008 levels.
In Rico’s post he also talks about memory issues and list three main sources of bad consumption:
- Managed images, especially ngen’d images.
- Unshared, unmanaged Heaps.
- Memory leaks
As for managed images the main problem is added dependencies where only a small piece of that DLL is used, resulting in too many dependencies. For Heaps it’s basically overuse of private heaps by using CreateHeap, resulting in too many expensive and not enough used heaps in the application. Memory leaks does exist, but since VS2010 is a managed application it ease the problem of finding them.
Rico ends by saying:
From my chair, the product feels much, much, better.