Performance improvements in Service Pack 1 for VS 2008 and .NET FX 3.5

We just announced the release of Service Pack 1 for VS 2008 and .NET FX 3.5. A major push for this release was continuing to enhance performance and reliability, as Soma noted in his most recent blog entry. I want to take a minute to drill into the major performance improvements you will find in this release of Visual Studio.

Framework Performance Enhancements

NET FX (CLR):

· New .NET Framework Client Profile - a smaller .NET Framework redist optimized for .NET client applications. The new redist weighs in at around 28 MB, enabling a smaller, faster, more reliable installation experience for .NET client applications on machines that do not already have the .NET Framework installed. The framework was refactored so that it now includes system core libraries and components (including LINQ), language support, XML, Windows Forms, WPF, Deployment, Web Services remoting and serialization, data access, and a few others. See the BCL Team blog for the full list and more details.

· Client applications should also see an improvement in cold startup scenarios especially for rich graphics WPF-based apps.We also made improvements to the working set of Ngen’d images, which also helps cold startup scenarios .

· Support for Address Space Layout Randomization (ASLR) on Vista and WS 2008. ASLR uses fast kernel mode virtual base address relocation to improve both memory layout and security.

WPF:

· Cold startup up to 40% faster, depending on the scenario and application size, without the need to modify any of your code.

· Additional support for text and graphics to deliver better performance. For example, effects like DropShadow and Blur were initially implemented using software rendering; with SP1 these are now implemented using hardware acceleration.

· Faster text rendering, mostly when used in specific scenarios such as VisualBrushes, DrawingBrushes, and Viewport2DVisual3D.

· Scrolling improvements with Container Recycling.

· Improved working set using TreeView virtualization

· A much improved WriteableBitmap that enables real-time bitmap updates from a software surface.

Jossef Goldberg’s blog is a great source of information on WPF performance tips and tricks. His detailed list of SP1 performance improvements is posted here.

WCF:

· Support for asynchronous HTTP module/handlers on IIS 7.0. Supports better thread management and improved throughput for systems with heavy backend processing requirements. (See Wenlong’s blog for the technical details.)

Windows Forms:

· General performance improvements, mostly due to underlying improvements in the CLR.

Data handling:

· Improved throughput in ADO.NET scenarios (2x+ requests/second for some scenarios).

· Performance improvements in XLINQ over XML containing many small elements.

Visual Studio Performance Enhancements

Visual Web Developer:

· Improved typing performance in the designer in complex pages (especially with MutiView control) 100x

· Fixed the issues with Switching to Design View.

· Opening Web Sites is up to 10x faster!

· Building Web Sites is up to 3x faster!

· Opening Web Forms is up to 2x faster!

· General performance improvements in startup and shutdown.

· Plus lots of new features and fixes (see the team blog).

Visual Basic .NET:

· Performance improvements in Intellisense and listing errors.

· Improvements in compiler and build throughput (most notably for projects with large amounts of XML comments in a single file)

Visual C#:

· Up to 2x improvements in bringing up Intellisense with a large number of types.

XAML Editing:

· Improved designer startup and form load time.

Debugging:

· Improvements in symbol and source downloading and the ability to cancel out of symbol download from a slow symbol server.

· Fix to a performance problem in the debugger when you are stepping through source code that is downloaded from Microsoft Reference Source Server that was caused by downloading the source files again for each breakpoint. Previously released as KB944899. (Please uninstall this KB before installing the SP.)

XML Editing:

· Loading XML is up to 3x faster!

· Improved editing performance.

Team Foundation Server:

In this Service Pack, a large part of the focus was to improve the performance and scalability of Team Foundation Server. Key changes include faster synchronization with Active Directory, improved check-in concurrency, a faster way to create source tree branches, online index rebuilding for less maintenance downtime and better support for checking very large sets of code.

TFS improved the number of projects a server can support. You should experience better scalability of the server, as well as the client experience when connecting to a server with a large number of projects on it.

· Opening Source Controlled Solutions is up to 2.5x faster!

· Deleting files is up to 2x faster!

· Improved Work Item performance (loading, saving, querying).

· Improved UI navigation performance.

· Improved performance working with TFS work items in Excel and Project

· Improved performance and reliability of the Visual SourceSafe migration tool.

· See Brian Harry’s BLOG for more about the Service Pack Release and Team Foundation Server improvements and scalability.

Other:

And, of course, there are lots of new features including the new Data Entity Framework, ADO.NET data services, support for SQL Server 2008’s new features, updated components for Visual Basic and Visual C++ (including a MFC-based Office 2007 Ribbon), and new designer capabilities that improve performance indirectly by improving developer productivity.

 

Some of these performance fixes were previously released as hot fixes (see our blog on the beta). If you installed some of those hot fixes you may need to remove them before installing the Service Patch. See the release notes on the download page for more information.

Should you encounter any performance problems we’ve missed, please continue to let us know here on the blog or by e-mail to devperf@Microsoft.com.