<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://blogs.msdn.com/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>bharry's WebLog : Visual Studio</title><link>http://blogs.msdn.com/bharry/archive/tags/Visual+Studio/default.aspx</link><description>Tags: Visual Studio</description><dc:language>en-US</dc:language><generator>CommunityServer 2.1 SP1 (Build: 61025.2)</generator><item><title>VS 2010 &amp; .NET 4 Public Release Candidate Planned</title><link>http://blogs.msdn.com/bharry/archive/2009/12/17/vs-2010-net-4-public-release-candidate-planned.aspx</link><pubDate>Fri, 18 Dec 2009 00:57:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9938505</guid><dc:creator>bharry</dc:creator><slash:comments>14</slash:comments><comments>http://blogs.msdn.com/bharry/comments/9938505.aspx</comments><wfw:commentRss>http://blogs.msdn.com/bharry/commentrss.aspx?PostID=9938505</wfw:commentRss><description>&lt;P&gt;I've written extensively in the last few weeks about the feedback we've gotten from our Beta 2.&amp;nbsp; I hope you can tell we've heard your feedback, we are taking it very seriously and are committed to shipping a product that you love.&amp;nbsp; I'm grateful for all of the feedback you've given.&amp;nbsp; I'm also grateful to all of you who have been able to pick up Super-Limited Community Technology Preview (SLCTP) builds.&lt;/P&gt;
&lt;P&gt;As we look at the feedback we've gotten and&amp;nbsp;the&amp;nbsp;improvements we've made, we're convinced we need another round of broad feedback.&amp;nbsp; As such we're announcing some changes to the 2010 end game.&amp;nbsp; The driving force is the inclusion of a publicly available, "go-live", supported Release Candidate in February.&amp;nbsp; We believe we'll have the vast majority of the feedback addressed in time for the release candidate and will be looking for another broad round of feedback to ensure it is ready.&lt;/P&gt;
&lt;P&gt;We will also be producing an SLCTP3 build in mid January for one more private, non-disclosure agreement, round of validation by those of you who would like to validate that the highest priority issues have been resolved.&amp;nbsp; Given that the RC will only be a few weeks later, I'm not expecting too many people to opt for it, but at a minimum, we'll be updating our internal dogfooders with it to ensure we are ready for the RC.&lt;/P&gt;
&lt;P&gt;As part of accomodating this public release candidate, we will be moving the planned launch date back a few weeks.&lt;/P&gt;
&lt;P&gt;Thanks ton for all the feedback you've given so far.&amp;nbsp; Please keep it coming and we'll keep addressing it.&lt;/P&gt;
&lt;P&gt;Brian&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9938505" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/bharry/archive/tags/Visual+Studio/default.aspx">Visual Studio</category><category domain="http://blogs.msdn.com/bharry/archive/tags/Performance/default.aspx">Performance</category></item><item><title>Update on Debugger Perf</title><link>http://blogs.msdn.com/bharry/archive/2009/12/17/update-on-debugger-perf.aspx</link><pubDate>Fri, 18 Dec 2009 00:01:07 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9938471</guid><dc:creator>bharry</dc:creator><slash:comments>5</slash:comments><comments>http://blogs.msdn.com/bharry/comments/9938471.aspx</comments><wfw:commentRss>http://blogs.msdn.com/bharry/commentrss.aspx?PostID=9938471</wfw:commentRss><description>&lt;p&gt;One of the things we got a lot of performance feedback on in Beta 2 was the debugger.&amp;#160; We’ve been working hard on it since Beta 2 and it’s looking much better.&amp;#160; There was no single thing that was a magic bullet that made everything go faster – but rather a whole lot of small things that together have made a huge difference.&amp;#160; Like many of the areas we got feedback on in Beta 2, we decided we were really going to drill on perf on not only make it much better but not stop until it was even clearly better than VS 2008.&amp;#160; I’m very proud to say we’ve accomplished that with the debugger now.&lt;/p&gt;  &lt;p&gt;We worked specifically to improve time from F5 to first break point, step over and step into time, time to restore responsiveness after stop debugging, interop debugging, disassembly debugging, thread &amp;amp; Intellitrace window repainting and more.&lt;/p&gt;  &lt;p&gt;Using the Blend solution as a test case (we’ve used many but this was a good one to highlight issues), we’ve taken some measurements I’d like to share with you.&amp;#160; First, I asked for a comparison for stepping in the Blend solution (averaged over many steps) compared to VS 2008.&amp;#160; For VS 2008, the time was .72 seconds.&amp;#160; For VS 2010, it is now .52 seconds.&amp;#160; It was several times slower than that at Beta 2.&lt;/p&gt;  &lt;p&gt;To demonstrate graphically the improvements since Beta 2, I have a video, thanks to Steve Carroll.&amp;#160; VS 2010 Beta 2 is on the left, VS 2010 (today) is on the right.&amp;#160; They are running through the same stepping scenario in the Blend code base.&amp;#160; No, the fact that the right one stops changing when the left one has barely gotten started is not a bug – it’s the improvement :)&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:5737277B-5D6D-4f48-ABFC-DD9C333F4C5D:9aae8d15-bccb-42f1-8fe6-102791265bf9" class="wlWriterEditableSmartContent"&gt;&lt;div id="615298b9-ac53-49cb-868f-7be6fe5ca95d" style="margin: 0px; padding: 0px; display: inline;"&gt;&lt;div&gt;&lt;a href="http://video.msn.com/video.aspx?vid=9f8f2ae7-385b-4741-afa9-6764bbce0b45&amp;amp;from=writer" target="_new"&gt;&lt;img src="http://blogs.msdn.com/blogfiles/bharry/WindowsLiveWriter/UpdateonDebuggerPerf_10B66/video99c7b6f0969c.jpg" style="border-style: none" galleryimg="no" onload="var downlevelDiv = document.getElementById('615298b9-ac53-49cb-868f-7be6fe5ca95d'); downlevelDiv.innerHTML = &amp;quot;&amp;lt;div&amp;gt;&amp;lt;embed src=\&amp;quot;http://images.video.msn.com/flash/soapbox1_1.swf\&amp;quot; quality=\&amp;quot;high\&amp;quot; width=\&amp;quot;432\&amp;quot; height=\&amp;quot;364\&amp;quot; wmode=\&amp;quot;transparent\&amp;quot; type=\&amp;quot;application/x-shockwave-flash\&amp;quot; pluginspage=\&amp;quot;http://macromedia.com/go/getflashplayer\&amp;quot; flashvars=\&amp;quot;c=v&amp;amp;v=9f8f2ae7-385b-4741-afa9-6764bbce0b45&amp;amp;from=writer&amp;amp;mkt=en-US\&amp;quot; &amp;gt;&amp;lt;\/embed&amp;gt;&amp;lt;\/div&amp;gt;&amp;quot;;" alt=""&gt;&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;We’re still not done yet.&amp;#160; At this point many of the areas (solution load, Virtual Memory usage, debugger, WPF/Silverlight designer) are better than VS 2008.&amp;#160; Others (typing/IntelliSense, some WPF rendering, leaks) have made tremendous progress but aren’t quite where we’d like them yet.&amp;#160; And a few others (startup performance, build performance, and some general UI sluggishness) are still building momentum.&lt;/p&gt;  &lt;p&gt;We’re making great progress and I’ll continue to keep you posted as we make headway.&amp;#160; As always, thanks a ton for your engagement and feedback.&lt;/p&gt;  &lt;p&gt;P.S. I apologize for the size of the video.&amp;#160; That’s what I got and with all the perf investigations going on, I just didn’t have the time to figure out how to shrink it.&lt;/p&gt;  &lt;p&gt;Brian&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9938471" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/bharry/archive/tags/Visual+Studio/default.aspx">Visual Studio</category><category domain="http://blogs.msdn.com/bharry/archive/tags/Performance/default.aspx">Performance</category></item><item><title>GamCom Talmia - A very cool process automation tool for TFS</title><link>http://blogs.msdn.com/bharry/archive/2009/12/16/gamcom-talmia-a-very-cool-process-automation-tool-for-tfs.aspx</link><pubDate>Wed, 16 Dec 2009 13:11:25 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9937617</guid><dc:creator>bharry</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.msdn.com/bharry/comments/9937617.aspx</comments><wfw:commentRss>http://blogs.msdn.com/bharry/commentrss.aspx?PostID=9937617</wfw:commentRss><description>&lt;p&gt;GamCom have just released a &lt;a href="http://www.talmia.com/video.aspx"&gt;video demo&lt;/a&gt; of &lt;u&gt;&lt;a href="http://www.talmia.com/"&gt;Talmia&lt;/a&gt;&lt;/u&gt;, their innovative process workflow tool for Team Foundation Server.&lt;/p&gt;  &lt;p&gt;The video shows how an example development process can be implemented so that work items are created and updated automatically along with relevant email alerts, escalation criteria and more. Updates are made interactively in response to user actions and according to the user’s process definitions. The video also shows how running processes can be monitored and reported on to improve process visibility.&lt;/p&gt;  &lt;p&gt;Talmia can be used to support any ALM process from project start-up and iteration management through to development and testing. Talmia is available now for TFS 2008 with a 2010 version coming in March.&lt;/p&gt;  &lt;p&gt;For more info see &lt;a href="http://blogs.msdn.com/terryclancy/"&gt;Terry Clancy’s recent blog post&lt;/a&gt; or go directly to the &lt;a href="http://www.talmia.com/video.aspx"&gt;video demo&lt;/a&gt; or web site for &lt;u&gt;&lt;a href="http://www.talmia.com/"&gt;Talmia&lt;/a&gt;&lt;/u&gt;.&lt;/p&gt;  &lt;p&gt;Brian&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9937617" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/bharry/archive/tags/Visual+Studio+Team+System/default.aspx">Visual Studio Team System</category><category domain="http://blogs.msdn.com/bharry/archive/tags/Visual+Studio/default.aspx">Visual Studio</category><category domain="http://blogs.msdn.com/bharry/archive/tags/TFS/default.aspx">TFS</category></item><item><title>A last comment on editor/IntelliSense improvements</title><link>http://blogs.msdn.com/bharry/archive/2009/12/14/a-last-comment-on-editor-intellisense-improvements.aspx</link><pubDate>Mon, 14 Dec 2009 14:43:21 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9936523</guid><dc:creator>bharry</dc:creator><slash:comments>5</slash:comments><comments>http://blogs.msdn.com/bharry/comments/9936523.aspx</comments><wfw:commentRss>http://blogs.msdn.com/bharry/commentrss.aspx?PostID=9936523</wfw:commentRss><description>&lt;p&gt;I got some data on some of the changes the languages team has made from Scott Wiltamuth (PUM of the languages team).&lt;/p&gt;  &lt;p&gt;The first change is in the message dispatching priority that we do in keystroke processing.&amp;#160; As a user is typing code that involves statement completion UI, we have a choice to make about the relative priority of (a) processing the keystrokes and (b) displaying and rendering the statement completion window.&amp;#160; The VS 2008 behavior was to delay the processing of IntelliSense presenters until the WM_KEYDOWN queue is empty.&amp;#160; As we transitioned the editor to WPF, the relative priorities changed.&amp;#160; Changing them back to something closer to the VS 2008 behavior made a huge difference.&amp;#160; The new code is show below, with the change highlighted (in case you can’t see the highlight, it’s “DispatcherPriority.Background”):&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;public void QueueSpaceReservationStackRefresh()&lt;/p&gt;    &lt;p&gt;{&lt;/p&gt;    &lt;p&gt;&amp;#160;&amp;#160;&amp;#160; if (Interlocked.CompareExchange(ref _queuedSpaceReservationStackRefresh, 1, 0) == 0)&lt;/p&gt;    &lt;p&gt;&amp;#160;&amp;#160;&amp;#160; {&lt;/p&gt;    &lt;p&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; this.Dispatcher.BeginInvoke(&lt;font color="#ff0000"&gt;DispatcherPriority.Background&lt;/font&gt;, new DispatcherOperationCallback(delegate&lt;/p&gt;    &lt;p&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; {&lt;/p&gt;    &lt;p&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Interlocked.Exchange(ref _queuedSpaceReservationStackRefresh, 0);&lt;/p&gt;    &lt;p&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; if (!_isClosed)&lt;/p&gt;    &lt;p&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; {&lt;/p&gt;    &lt;p&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; _spaceReservationStack.Refresh();&lt;/p&gt;    &lt;p&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; }&lt;/p&gt;    &lt;p&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; return null;&lt;/p&gt;    &lt;p&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; }), null);&lt;/p&gt;    &lt;p&gt;&amp;#160;&amp;#160;&amp;#160; }&lt;/p&gt;    &lt;p&gt;}&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;This one change generated huge wins on some of the typing tests that we use – between 39% and 55% from one build to the next!&lt;/p&gt;  &lt;p&gt;The second change was to re-use rather than re-create the statement completion window, so that when you type o.Foo.Bar, we reuse the statement completion window that displayed “Foo” for the statement completion of “Bar”.&lt;/p&gt;  &lt;p&gt;Combined, these performance wins will make a big difference, especially for fast typists who have slow graphics hardware or are using virtualization.&amp;#160; Here are the % changes for some of our C# typing scenarios:&amp;#160; &lt;table border="0" cellspacing="0" cellpadding="0"&gt;&lt;tbody&gt;       &lt;tr&gt;         &lt;td valign="top" width="64"&gt;           &lt;p&gt;&lt;b&gt;PU&lt;/b&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top" width="427"&gt;           &lt;p&gt;&lt;b&gt;Scenario&lt;/b&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top" width="97"&gt;           &lt;p&gt;&lt;b&gt;B2Rel.21006               &lt;br /&gt;(Run 22042) &lt;/b&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top" width="121"&gt;           &lt;p&gt;&lt;b&gt;vs_langs.21201               &lt;br /&gt;(Run 23531)&lt;/b&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="top" width="78"&gt;           &lt;p&gt;&lt;b&gt;% Change&lt;/b&gt;&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td valign="bottom" width="64"&gt;           &lt;p&gt;VSL C#&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="bottom" width="427"&gt;           &lt;p&gt;Typing - Add classes at end of Large File&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="bottom" width="97"&gt;           &lt;p&gt;71,961.75&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="bottom" width="121"&gt;           &lt;p&gt;47,747.25&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="bottom" width="78"&gt;           &lt;p&gt;33.65%&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td valign="bottom" width="64"&gt;           &lt;p&gt;VSL C#&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="bottom" width="427"&gt;           &lt;p&gt;Typing - After Top Level Edit&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="bottom" width="97"&gt;           &lt;p&gt;117,091.50&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="bottom" width="121"&gt;           &lt;p&gt;54,787.00&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="bottom" width="78"&gt;           &lt;p&gt;53.21%&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td valign="bottom" width="64"&gt;           &lt;p&gt;VSL C#&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="bottom" width="427"&gt;           &lt;p&gt;Typing - In a Deeply Nested Object Initializer&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="bottom" width="97"&gt;           &lt;p&gt;90,684.00&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="bottom" width="121"&gt;           &lt;p&gt;30,404.75&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="bottom" width="78"&gt;           &lt;p&gt;66.47%&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td valign="bottom" width="64"&gt;           &lt;p&gt;VSL C#&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="bottom" width="427"&gt;           &lt;p&gt;Typing - In a Large Method&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="bottom" width="97"&gt;           &lt;p&gt;118,181.50&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="bottom" width="121"&gt;           &lt;p&gt;55,767.25&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="bottom" width="78"&gt;           &lt;p&gt;52.81%&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td valign="bottom" width="64"&gt;           &lt;p&gt;VSL C#&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="bottom" width="427"&gt;           &lt;p&gt;Typing - Large Collection Initializers&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="bottom" width="97"&gt;           &lt;p&gt;170,896.75&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="bottom" width="121"&gt;           &lt;p&gt;83,959.00&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="bottom" width="78"&gt;           &lt;p&gt;50.87%&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td valign="bottom" width="64"&gt;           &lt;p&gt;VSL C#&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="bottom" width="427"&gt;           &lt;p&gt;Typing - Query Expressions&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="bottom" width="97"&gt;           &lt;p&gt;117,562.25&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="bottom" width="121"&gt;           &lt;p&gt;32,993.50&lt;/p&gt;         &lt;/td&gt;          &lt;td valign="bottom" width="78"&gt;           &lt;p&gt;71.94%&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;     &lt;/tbody&gt;&lt;/table&gt; &lt;/p&gt;  &lt;p&gt;Brian&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9936523" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/bharry/archive/tags/Visual+Studio/default.aspx">Visual Studio</category><category domain="http://blogs.msdn.com/bharry/archive/tags/Performance/default.aspx">Performance</category></item><item><title>Requests for access to VS 2010 post Beta 2 SLCTP builds</title><link>http://blogs.msdn.com/bharry/archive/2009/12/14/requests-for-access-to-vs-2010-post-beta-2-slctp-builds.aspx</link><pubDate>Mon, 14 Dec 2009 13:46:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9936491</guid><dc:creator>bharry</dc:creator><slash:comments>7</slash:comments><comments>http://blogs.msdn.com/bharry/comments/9936491.aspx</comments><wfw:commentRss>http://blogs.msdn.com/bharry/commentrss.aspx?PostID=9936491</wfw:commentRss><description>&lt;P&gt;Since I posted my offer to hook you up with one of the Super-Limited Community Technology Preview builds, I have received a number of requests.&amp;nbsp; I'm happy to do it but I want to clarify one thing.&amp;nbsp; A few people seem to have the assumption that the build will be more stable than Beta 2 and therefore a great upgrade for their daily use.&amp;nbsp; It's possible, but it's not likely.&amp;nbsp; That's not why we are distributing them.&amp;nbsp; We are distributing them so that people can test if specific issues that they reported in Beta 2 (particularly performance) have been addressed for them.&lt;/P&gt;
&lt;P&gt;When we ship a Beta, we go through a multi-week stabilization period designed to gradually improve the quality by reducing the churn and fixing/avoiding regressions.&amp;nbsp; The SLCTP builds have no such period.&amp;nbsp; They are just daily builds that have passed the nightly verification tests.&amp;nbsp; That means they should mostly work but there could be very bad regressions lurking that haven't been discovered yet.&amp;nbsp; We get hundreds of checkins every day and any one of them could introduce a serious but not immediately obvious regression.&lt;/P&gt;
&lt;P&gt;If you tried Beta 2 and you experienced (and hopefully reported) a specific issue and you want to verify that the issue is gone (and are prepared to re-report it if it is not), then&amp;nbsp;an SLCTP build might be for you.&amp;nbsp; If you are hoping for a new build that will just overall improve your development experience over Beta 2, the SLCTPs are not for you.&amp;nbsp; We are working on a plan to provide another more broadly available better stabilized pre-release VS 2010 build.&amp;nbsp; That will be your best shot at an overall better experience.&lt;/P&gt;
&lt;P&gt;We greatly appreciate your help in tracking down the remaining issues so that we can ship a great product!&lt;/P&gt;
&lt;P&gt;Brian&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9936491" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/bharry/archive/tags/Visual+Studio/default.aspx">Visual Studio</category><category domain="http://blogs.msdn.com/bharry/archive/tags/Performance/default.aspx">Performance</category></item><item><title>Why do we require NDAs on our SLCTPs?</title><link>http://blogs.msdn.com/bharry/archive/2009/12/13/why-do-we-require-ndas-on-our-slctps.aspx</link><pubDate>Sun, 13 Dec 2009 12:26:36 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9936224</guid><dc:creator>bharry</dc:creator><slash:comments>3</slash:comments><comments>http://blogs.msdn.com/bharry/comments/9936224.aspx</comments><wfw:commentRss>http://blogs.msdn.com/bharry/commentrss.aspx?PostID=9936224</wfw:commentRss><description>&lt;p&gt;Last night, I got the following question in email and it seemed like a good one and worth sharing the answer more broadly.&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;I'm just a bit curious about why you have an NDA for your SLCTP's. The purpose of NDA's is to prevent people talking about all the new great stuff in upcoming releases. I would imagine at this stage the products are feature complete; only performance and bugfixing left.      &lt;br /&gt;You yourself have gone publicly out and said that performance kind of sucks in the Beta releases. So it's not something anybody else will trumpet on their blogs and use as an example of how crap Microsoft products are. The only thing I can see is that people will say that performance is great; and I would have though that was a message you would want to put out as much as possible. &lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;No, it has nothing to do with that.&lt;/p&gt;  &lt;p&gt;Let me start by saying I am not a lawyer.&amp;#160; I’m passing on the legal advice we’ve been given and I haven’t drilled into it to really understand the reasons behind it.&amp;#160; When we are given legal advice that I think really compromises our business decisions, I do sometimes drill into it and will put pressure on the legal team to find better solutions.&amp;#160; In this case, I didn’t feel this was an onerous issue, and we had bigger fish to fry – like actually working on the perf issues being reported, so I let it go.&lt;/p&gt;  &lt;p&gt;Our goal is to turn out the SLCTPs quickly and with very little overhead.&amp;#160; We generally start delivering them to customers within a few days of the build completing.&amp;#160; In order to do this, we have to bypass a lot of our release verification – some security verification steps, legal compliance steps, etc.&amp;#160; We still do some – like code signing and virus scanning but a bunch is skipped.&amp;#160; The legal team has told us that to distribute builds that have not gone through the full release process like these, the must go to a limited number of people and they must be under NDA.&amp;#160; By distributing SLCTP1 to &amp;gt;50 people, I think we’re pushing the limits of “a limited number of people” but not too bad.&lt;/p&gt;  &lt;p&gt;In general, I don’t care if you talk about the perf or not.&amp;#160; In fact, if you have constructive feedback, even if painful to read, I want to see it.&amp;#160; But, unfortunately, you can’t talk about it relative to the SLCTP builds for the reason I gave.&amp;#160; We’re working on a plan for a more broadly available, non-NDA build.&amp;#160; I’ll let you know when we know more.&lt;/p&gt;  &lt;p&gt;Thanks,&lt;/p&gt;  &lt;p&gt;Brian&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9936224" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/bharry/archive/tags/Visual+Studio/default.aspx">Visual Studio</category><category domain="http://blogs.msdn.com/bharry/archive/tags/Performance/default.aspx">Performance</category></item><item><title>Blend Feedback on SLCTP1</title><link>http://blogs.msdn.com/bharry/archive/2009/12/12/blend-feedback-on-slctp1.aspx</link><pubDate>Sat, 12 Dec 2009 17:37:10 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9936107</guid><dc:creator>bharry</dc:creator><slash:comments>8</slash:comments><comments>http://blogs.msdn.com/bharry/comments/9936107.aspx</comments><wfw:commentRss>http://blogs.msdn.com/bharry/commentrss.aspx?PostID=9936107</wfw:commentRss><description>&lt;p&gt;About a week ago the Blend team upgraded to our SLCTP1 build (Super-Limited Community Technology Preview).&amp;#160; We’re starting to get some anecdotal feedback from them and we’re planning to do another survey this coming week that will include everyone who tried SLCTP1 (a couple of internal teams and over 50 external customers).&amp;#160; Before I share the new feedback with you, let me share some Beta 2 feedback.&amp;#160; I have to say it is painful to read, even now – after I’ve read through it numerous times over the past couple of months.&amp;#160; The thing I always have to keep reminding myself is “it was a Beta, it’s not supposed to be ship ready – it’s supposed to be a good vehicle for feedback”.&amp;#160;&amp;#160; Here’s one of the verbatims from the Blend team after they adopted Beta 2:&lt;/p&gt;  &lt;p&gt;“If VS shipped today, I would not use, install, or buy the product, based on the performance.&amp;#160; If I had any choice I would not use it at work either (Blend requires .NET 4).&amp;#160; It is virtually unusable, and I am extremely unsatisfied with the performance.&amp;#160; This product is a huge impediment to my productivity.&amp;#160; VS2008 worked fine, using VS2010 is a struggle every day.”&lt;/p&gt;  &lt;p&gt;Please join me in a collective “OUCH!”&amp;#160; Let me also say that there are plenty of people who are very successful with Beta 2, but clearly the Blend team was not :(&lt;/p&gt;  &lt;p&gt;Now to give you some contrast, here’s some quotes I got from the Blend team in email yesterday (based on their adoption of SLCTP1)…&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;1. Solution load time was incredibly slow&lt;/p&gt;    &lt;p&gt;2. Once solution was loaded, trying to actually edit a .cs file was very slow with lots of hourglasses, not responding, etc.&lt;/p&gt;    &lt;p&gt;I am incredibly happy to report that he just gave me a build with a fix for number 1.&amp;#160; He found that hint paths were being resolved unnecessarily and repetitively when loading our solution.&amp;#160; We tested his fix and the results are astonishingly fast! :)&lt;/p&gt;    &lt;p&gt;Open Blend test solution on a fairly old machine with fixed build&amp;#160; (FAST!)&lt;/p&gt;    &lt;p&gt;versus&lt;/p&gt;    &lt;p&gt;Open Blend test solution on slightly faster machine with our old VS build&amp;#160; (VERY SLOW)&lt;/p&gt;    &lt;p&gt;I must say I am very impressed with their responsiveness and the impact that these fixes will have for us, let alone all of our external customers!&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;And this one…&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;Wow!!!&lt;/p&gt;    &lt;p&gt;I just tried it and it is amazing.&amp;#160; Virtually no wait time. &lt;/p&gt;    &lt;p&gt;Once the solution is loaded, I open a .cs doc and being editing immediately. I also tried editing in a document that was already opened upon load. It too was immediate.&lt;/p&gt;    &lt;p&gt;Incredible!&lt;/p&gt;    &lt;p&gt;We are feeling spoiled over here today.&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;Not done yet but the progress is really good.&amp;#160; We’ll keep whacking away at it.&amp;#160; SLCTP2 is going to be available this coming week.&amp;#160; This one will still only be available under NDA but if you’ve had performance problems with Beta 2 and you’d like to get a change to see how it’s progressing, let me know and we’ll sign you up.&amp;#160; We’re looking at a plan for a more broadly available (non-NDA) build – stay tuned for more info.&lt;/p&gt;  &lt;p&gt;Brian&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9936107" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/bharry/archive/tags/Visual+Studio/default.aspx">Visual Studio</category><category domain="http://blogs.msdn.com/bharry/archive/tags/Performance/default.aspx">Performance</category></item><item><title>“Real World” Apps</title><link>http://blogs.msdn.com/bharry/archive/2009/12/11/real-world-apps.aspx</link><pubDate>Fri, 11 Dec 2009 16:04:19 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9935736</guid><dc:creator>bharry</dc:creator><slash:comments>13</slash:comments><comments>http://blogs.msdn.com/bharry/comments/9935736.aspx</comments><wfw:commentRss>http://blogs.msdn.com/bharry/commentrss.aspx?PostID=9935736</wfw:commentRss><description>&lt;p&gt;Someone asked me the other day what we were using as our “Real World” apps so they could compare them to their own apps to understand how the testing we are doing will apply.&amp;#160; Here’s a high level overview that characterizes several of them.&amp;#160; There are others that I haven’t listed but this should give you a decent flavor.&amp;#160; Many of these came from actual external customers and the names have been changed to protect the innocent :)&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;table border="0" cellspacing="0" cellpadding="2" width="400"&gt;&lt;tbody&gt;     &lt;tr&gt;       &lt;td valign="top" width="100"&gt;App&lt;/td&gt;        &lt;td valign="top" width="149"&gt;Type&lt;/td&gt;        &lt;td valign="top" width="66"&gt;Projects&lt;/td&gt;        &lt;td valign="top" width="85"&gt;Source files&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="100"&gt;AG&lt;/td&gt;        &lt;td valign="top" width="149"&gt;VB WinForms&lt;/td&gt;        &lt;td valign="top" width="66"&gt;120&lt;/td&gt;        &lt;td valign="top" width="85"&gt;942&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="100"&gt;SW&lt;/td&gt;        &lt;td valign="top" width="149"&gt;Mixed (incl C++)&lt;/td&gt;        &lt;td valign="top" width="66"&gt;167&lt;/td&gt;        &lt;td valign="top" width="85"&gt;2655&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="100"&gt;P&lt;/td&gt;        &lt;td valign="top" width="149"&gt;C# WinForms&lt;/td&gt;        &lt;td valign="top" width="66"&gt;29&lt;/td&gt;        &lt;td valign="top" width="85"&gt;1393&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="100"&gt;UM&lt;/td&gt;        &lt;td valign="top" width="149"&gt;C# Web Project&lt;/td&gt;        &lt;td valign="top" width="66"&gt;12&lt;/td&gt;        &lt;td valign="top" width="85"&gt;439&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="100"&gt;CB&lt;/td&gt;        &lt;td valign="top" width="149"&gt;VB Web Project&lt;/td&gt;        &lt;td valign="top" width="66"&gt;37&lt;/td&gt;        &lt;td valign="top" width="85"&gt;2297&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="100"&gt;TZ&lt;/td&gt;        &lt;td valign="top" width="149"&gt;C# Website&lt;/td&gt;        &lt;td valign="top" width="66"&gt;11&lt;/td&gt;        &lt;td valign="top" width="85"&gt;1021&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="100"&gt;PJD&lt;/td&gt;        &lt;td valign="top" width="149"&gt;C#, XAML, Silverlight&lt;/td&gt;        &lt;td valign="top" width="66"&gt;8&lt;/td&gt;        &lt;td valign="top" width="85"&gt;1200&lt;/td&gt;     &lt;/tr&gt;   &lt;/tbody&gt;&lt;/table&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;I’m not trying to tell you that no one has any apps bigger than this but we believe these represent a pretty good picture of a range of largish real world apps across a variety of technologies.&lt;/p&gt;  &lt;p&gt;Brian&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9935736" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/bharry/archive/tags/Visual+Studio/default.aspx">Visual Studio</category><category domain="http://blogs.msdn.com/bharry/archive/tags/Performance/default.aspx">Performance</category></item><item><title>Update on Solution Load Performance</title><link>http://blogs.msdn.com/bharry/archive/2009/12/11/update-on-solution-load-performance.aspx</link><pubDate>Fri, 11 Dec 2009 15:18:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9935709</guid><dc:creator>bharry</dc:creator><slash:comments>13</slash:comments><comments>http://blogs.msdn.com/bharry/comments/9935709.aspx</comments><wfw:commentRss>http://blogs.msdn.com/bharry/commentrss.aspx?PostID=9935709</wfw:commentRss><description>&lt;P&gt;One of the areas we’ve gotten a lot of performance feedback from Beta 2 on is loading solutions.&amp;nbsp; We’ve made a ton of progress addressing the causes of the slowness.&amp;nbsp; Like on the virtual memory issue I talked about yesterday, we’ve picked a set of “real world apps” – some of the same ones and some different ones to measure solution load time.&amp;nbsp; Most of them are pretty big.&amp;nbsp; I haven’t forgotten that I own you some data about how big these “real world” apps are.&amp;nbsp; That’s next on my list.&amp;nbsp; Again I’ve obfuscated the names to protect the identities of some of the customers who shared their apps with us but where the abbreviation matches with the VM charts you saw, they are the same app (for example: AG and CB).&lt;/P&gt;
&lt;P&gt;The good news is that in most scenarios, we are now faster than VS 2008 (Orcas), in fact in some cases substantially so, for example: AV and TZ are almost twice as fast.&amp;nbsp; Here is a chart comparing them (Main 21130.00 is the build from the Main branch on Nov 30th).&amp;nbsp; You’ll notice we still have a few regressions with bugs filed on the more significant ones.&amp;nbsp; As you can see a couple of measurements are still missing.&lt;/P&gt;
&lt;P&gt;&lt;A href="http://blogs.msdn.com/blogfiles/bharry/WindowsLiveWriter/UpdateonSolutionLoadPerformance_CFBD/image_2.png" mce_href="http://blogs.msdn.com/blogfiles/bharry/WindowsLiveWriter/UpdateonSolutionLoadPerformance_CFBD/image_2.png"&gt;&lt;IMG style="BORDER-BOTTOM: 0px; BORDER-LEFT: 0px; DISPLAY: inline; BORDER-TOP: 0px; BORDER-RIGHT: 0px" title=image border=0 alt=image src="http://blogs.msdn.com/blogfiles/bharry/WindowsLiveWriter/UpdateonSolutionLoadPerformance_CFBD/image_thumb.png" width=644 height=409 mce_src="http://blogs.msdn.com/blogfiles/bharry/WindowsLiveWriter/UpdateonSolutionLoadPerformance_CFBD/image_thumb.png"&gt;&lt;/A&gt; &lt;/P&gt;
&lt;P&gt;The first line (Open Dev10) is just measuring the raw time to start VS (for comparison to loading a solution).&amp;nbsp; Ultimately, we are not going to get the raw startup time of VS 2010 to be as fast as VS 2008 but we continue to make progress on it and I don’t believe that is the most important metric.&amp;nbsp; You'll see below a 1s startup regression in the fix queue and there's more improvements in the works, however, having startup be aa bit&amp;nbsp;slower isn’t deadly if the rest of it runs pretty fast.&lt;/P&gt;
&lt;P&gt;I suspect you are wondering what is “High-end hardware” and what is “Typical hardware”.&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;High End: &lt;FONT color=#1f497d size=3 face=Calibri&gt;Compaq DC7800, 2.4Ghz, dual core, 2G, 8M L2 cache, 667MHz memory speed, Tier 2 WPF graphics card, SATA 300 w/ 8M disk cache&lt;/FONT&gt;&lt;/LI&gt;
&lt;LI&gt;Typical:&amp;nbsp;&lt;FONT color=#1f497d size=3 face=Calibri&gt; HP Proliant DL145 1.8Ghz Pentium 4, &amp;nbsp;single core, 1G, 1M L2 cache, software rendered (graphics card is considered Tier 0 by WPF), ATA 133 w/ 2M disk cache&lt;/FONT&gt;&lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;Here’s our list of active investigations for solution load:&lt;/P&gt;
&lt;P&gt;&lt;A href="http://blogs.msdn.com/blogfiles/bharry/WindowsLiveWriter/UpdateonSolutionLoadPerformance_CFBD/image_4.png" mce_href="http://blogs.msdn.com/blogfiles/bharry/WindowsLiveWriter/UpdateonSolutionLoadPerformance_CFBD/image_4.png"&gt;&lt;IMG style="BORDER-BOTTOM: 0px; BORDER-LEFT: 0px; DISPLAY: inline; BORDER-TOP: 0px; BORDER-RIGHT: 0px" title=image border=0 alt=image src="http://blogs.msdn.com/blogfiles/bharry/WindowsLiveWriter/UpdateonSolutionLoadPerformance_CFBD/image_thumb_1.png" width=644 height=328 mce_src="http://blogs.msdn.com/blogfiles/bharry/WindowsLiveWriter/UpdateonSolutionLoadPerformance_CFBD/image_thumb_1.png"&gt;&lt;/A&gt; &lt;/P&gt;
&lt;P&gt;You’ll notice a couple of our internal customers I mentioned in an earlier post (Expression Blend and Exchange) in the list of active fixes and investigations.&amp;nbsp; BTW: Don’t read&amp;nbsp;that 12/19 (RC) to mean anything.&amp;nbsp; I don’t know why it says that – our RC plans have nothing to do with 12/19.&amp;nbsp; I suspect they are just saying that by getting in by 12/19 it will be sure to make it into the RC (which is definitely true).&lt;/P&gt;
&lt;P&gt;I’ll continue to update you on other areas as we make progress and I get time to write about them.&lt;/P&gt;
&lt;P&gt;Brian&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9935709" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/bharry/archive/tags/Visual+Studio/default.aspx">Visual Studio</category><category domain="http://blogs.msdn.com/bharry/archive/tags/Performance/default.aspx">Performance</category></item><item><title>Status update on post Beta 2 performance work</title><link>http://blogs.msdn.com/bharry/archive/2009/12/10/status-update-on-post-beta-2-performance-work.aspx</link><pubDate>Thu, 10 Dec 2009 13:36:29 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9935096</guid><dc:creator>bharry</dc:creator><slash:comments>13</slash:comments><comments>http://blogs.msdn.com/bharry/comments/9935096.aspx</comments><wfw:commentRss>http://blogs.msdn.com/bharry/commentrss.aspx?PostID=9935096</wfw:commentRss><description>&lt;p&gt;We continue to drive for improvements – trying to make contact with every person who reports issues (via my blog, Connect, Surveys, etc.).&amp;#160; We’re released on “Super-Limited Community Technology Preview” to individuals who have reported problems and are on the brink of releasing another.&lt;/p&gt;  &lt;p&gt;Every day we are seeing wins.&amp;#160; One of the many issues we’ve been tracking the last few weeks has been that localized/international installs were substantially slower than English (yeah, I know you are thinking that would be hard :)) – on the order of 2 times slower in some cases.&amp;#160; Just this morning I got word that a WPF improvement has been tested and we are now nearly at parity with English.&amp;#160; There’s also a resource loading fix in the pipe that should erase any remaining issues.&amp;#160; It looks like one more problem is down and we’ll keep cranking on the rest.&lt;/p&gt;  &lt;p&gt;I thought I’d share a few quotes we received from customers who have tried out the LCTP1 build.&amp;#160; I’ve asked for numerical data in addition to anecdotal but the anecdotal also makes a nice read.&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Scrolling performance seems much better; it's now actually usable with a single core enabled and a lot better with 2 cores as well! Awesome! Scrolling using PgDown/PgUp also seems a lot better, particularly with 2 cores it seems pretty snappy. &lt;/li&gt;    &lt;li&gt;I think you’ve absolutely identified the issue and I appreciate you working with me on this.&amp;#160; VS2010 ROCKS! &lt;/li&gt;    &lt;li&gt;They’ve improved things so much for me that it has become hard to reproduce the problem! &lt;/li&gt;    &lt;li&gt;It's still a lot better than on beta2. It is much, much appreciated!!!! &lt;/li&gt;    &lt;li&gt;Overall I'm seeing improvement on the performance front, but my ability to assess that is still noticeably impeded by stability and functional issues. &lt;/li&gt;    &lt;li&gt;Stack overflow crash on converting a particular Makefile project. &lt;/li&gt;    &lt;li&gt;Stepping speed in disassembly view is improved now that 511266 has been fixed, but it is still unsatisfactory. &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;We are also making a big push to get all of our internal dogfooders to update to SLCTP 2 and will be following up with a survey once people have had time to get a feel for it.&amp;#160; We’ve picked up several key dogfooding teams that we’re working closely with on their experience, including: Expression, Exchange and CodePlex in addition to the Visual Studio teams.&lt;/p&gt;  &lt;p&gt;We’re not done but it’s good to see some progress.&amp;#160; SLCTP 2 should be better and by the time we get a more broadly available RC out after the first of the year, I’m very optimistic that the problem will be gone and Beta 2 will have proven very successful in helping us make sure we ship a great product.&lt;/p&gt;  &lt;p&gt;Brian&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9935096" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/bharry/archive/tags/Visual+Studio/default.aspx">Visual Studio</category><category domain="http://blogs.msdn.com/bharry/archive/tags/Performance/default.aspx">Performance</category></item><item><title>Another Virtual Memory Tip</title><link>http://blogs.msdn.com/bharry/archive/2009/12/09/another-virtual-memory-tip.aspx</link><pubDate>Wed, 09 Dec 2009 13:58:36 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9934564</guid><dc:creator>bharry</dc:creator><slash:comments>8</slash:comments><comments>http://blogs.msdn.com/bharry/comments/9934564.aspx</comments><wfw:commentRss>http://blogs.msdn.com/bharry/commentrss.aspx?PostID=9934564</wfw:commentRss><description>&lt;p&gt;In truth, this won’t apply to very many of you and it is with some trepidation that I share it.&amp;#160; The last thing in the world I want is for everyone to blindly follow it.&amp;#160; This, like in many things in software, involves trade-offs that you need to think hard about.&lt;/p&gt;  &lt;p&gt;VS 2010 includes more managed code than any previous version of VS.&amp;#160; Also more of the managed code is NGENed (precompiled and saved on disk to avoid just in time compilation cost).&amp;#160; As we’ve investigated the VM exhaustion issues (approaching the 2GB limit) we’ve seen some effects from this.&lt;/p&gt;  &lt;p&gt;Before I go into the effects, let me set one more piece of context.&amp;#160; In the early planning and development for this release, we were toying with significant changes to the VS deployment model to make the vast majority of it “xcopy deployable”.&amp;#160; We ultimately decided not to try to deliver that for this release but it’s still in our aspirations.&amp;#160; As part of our initial foray into this, we moved a whole bunch of our assemblies that had previously been placed in the Global Assembly Cache (GAC) out of it to better facilitate xcopy deployment.&lt;/p&gt;  &lt;p&gt;When we started looking at our VM usage more closely in the Beta 2 timeframe, we noticed that a whole lot of files were mapped into memory twice (for instance: Microsoft.VisualStudio.TeamFoundation.Client.dll and Microsoft.VisualStudio.TeamFoundation.Client.ni.dll).&amp;#160; The first one is the image with the IL in it and the second one is the image with native code in it that has been NGENed.&amp;#160; Double loading so many DLLs uses up dozens of MBs of VM in an application of this size.&lt;/p&gt;  &lt;p&gt;Upon further investigation, we learned that the CLR will often load both the IL image and the NGEN’d image when the IL image is stored outside the GAC.&amp;#160; Moving the assembly inside the GAC eliminates the load of the IL image – loading only the NGEN’d image.&lt;/p&gt;  &lt;p&gt;Now, hearkening back to my first paragraph, this actually sounds much worse than it is for most applications.&amp;#160; The IL image (although mapped into memory) is not actually used for anything.&amp;#160; The performance impact of this “double mapping” is nearly non-existent.&amp;#160; Further it’s much better in .NET 4 than it was in .NET 3.5 because there actually used to be a performance hit in 3.5 (and earlier).&amp;#160; In .NET 3.5 and before, if the assembly was strong name signed and NGENed, not only did it map both images, it actually verified the strong name on the IL which involves both CPU and I/O cost.&amp;#160; In .NET 4.0 for the security model has been updated to only verify the strong names on images coming from untrusted locations.&lt;/p&gt;  &lt;p&gt;This issue is something that people should think about if they have an app where the 2GB VM limit is a significant consideration but be aware that moving stuff into the GAC comes with its own issues.&amp;#160; For one thing, it means your install can more “impactful” on the system than otherwise because your components are in a shared place where other applications can take dependencies on them.&amp;#160; It also means you can’t just copy your app onto the computer – you have to install things in the GAC with GACUtil.&amp;#160; There are installation permission implications and more.&amp;#160; I don’t intend to turn this post into a “best practices for what to GAC and what not to” – I suspect there’s plenty of material out on the web for that – just be aware that it’s not a magic bullet that everyone should shoot.&lt;/p&gt;  &lt;p&gt;When we first realized the impact this was having on the VS virtual memory situation, we spent several weeks with the .NET Framework team trying to determine if they could change this behavior and eliminate the “double loading”.&amp;#160; After quite a bit of prototyping, we concluded that WAY too much code needed to be changed in the Framework and that this is a better fit for the next release.&amp;#160; The loader is one of the most delicate parts of the CLR and even VERY subtle changes in semantics, ordering, timing, etc can result in 3rd party applications breaking.&lt;/p&gt;  &lt;p&gt;Instead, we chose to pursue the path of analyzing our VS assemblies and determining which ones made sense to move back into the GAC.&amp;#160; That work is largely complete and we’ve found that the savings are on the order or 50-70MB of VM across a sampling of scenarios.&amp;#160; It’s not a huge amount (compared to 2GB) but it’s a very nice step in the right direction given them most of our scenarios were only over by a couple of hundred MB.&lt;/p&gt;  &lt;p&gt;Brian&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9934564" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/bharry/archive/tags/Visual+Studio/default.aspx">Visual Studio</category><category domain="http://blogs.msdn.com/bharry/archive/tags/Performance/default.aspx">Performance</category></item><item><title>Looking at Virtual Memory Usage</title><link>http://blogs.msdn.com/bharry/archive/2009/12/08/looking-at-virtual-memory-usage.aspx</link><pubDate>Tue, 08 Dec 2009 14:51:27 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9934048</guid><dc:creator>bharry</dc:creator><slash:comments>11</slash:comments><comments>http://blogs.msdn.com/bharry/comments/9934048.aspx</comments><wfw:commentRss>http://blogs.msdn.com/bharry/commentrss.aspx?PostID=9934048</wfw:commentRss><description>&lt;p&gt;One of the big problems that I’ve talked about is virtual memory exhaustion and the resulting VS instability.&amp;#160; Today, VS is a 32-bit process – I’m sure that’s going to change (become 64-bit) at some point but it won’t for 2010.&amp;#160; A 32-bit process has 2GB of address space on a 32-bit OS.&amp;#160; You can throw the 3GB switch and get another GB at the cost of taking a GB away from the OS – it works OK but the OS doesn’t always like it – particularly if you are running server components on your machine (like IIS).&amp;#160; If you are on a 64-bit OS, 32-bit processes get a full 4GB of virtual address space without any penalty to the OS – handy eh?&lt;/p&gt;  &lt;p&gt;In the end, many customers are still running on 32-bit OSes and asking them to go change boot parameters (the 3GB switch) just isn’t an appropriate thing for us to do, so we’re focusing on making sure VM works well in the 2GB of address space that many customers have available.&lt;/p&gt;  &lt;p&gt;This can be complicated by Virtual Address space fragmentation.&amp;#160; This is caused by smallish gaps between other virtual address space allocation.&amp;#160; You can reach the point where there’s enough virtual address space left but there’s not enough contiguous space to satisfy allocations.&amp;#160; So saying everything is OK as long as virtual memory allocation stays below 2GB really isn’t realistic.&amp;#160; The app will become unstable well before that.&lt;/p&gt;  &lt;p&gt;Further, any test we do has to take into account that users will always do some things we didn’t expect so running VM all the way up to the threshold and saying “good enough” just isn’t acceptable either.&lt;/p&gt;  &lt;p&gt;So what do you do?&lt;/p&gt;  &lt;p&gt;We’ve started by gathering some “real world apps”.&amp;#160; By this I mean some of you, our customers, have actually given us copies of your large apps.&amp;#160; We’re incredibly grateful for this because they are great tools to ensure that we are staying in touch with the kinds of apps our customers are building and how VS is working for them.&amp;#160; Oh, and we’re using a couple of internal MS apps as well.&amp;#160; We’ve chosen 6 of them (apps of various types: web, WPF, Sharepoint, etc) that are all large and we believe characterize a large portion of our customer base.&lt;/p&gt;  &lt;p&gt;We then choose a set of operations – load the solution, edit some code, design some forms, debug, checkin some changes, etc, etc that represent a realistic end user interaction with each application.&lt;/p&gt;  &lt;p&gt;And lastly, we’ve chosen a threshold or 1.5GB of VM.&amp;#160; We will not consider it acceptable until all 6 of the scenarios are able to execute without ever going over 1.5GB of VM.&amp;#160; We believe this will allow adequate room for users to do things we didn’t anticipate and still have a buffer before getting near the instability threshold.&lt;/p&gt;  &lt;p&gt;Here’s a picture of where we currently stand with the 6 apps (btw, I’ve changed the names of the apps to protect the identity of people we are working with).&amp;#160; Most of these apps were RED when we started the VM effort a couple of months ago.&amp;#160; As you can see we’ve made some good progress but we aren’t done yet.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/bharry/WindowsLiveWriter/LookingatVirtualMemoryUsage_8607/image_4.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://blogs.msdn.com/blogfiles/bharry/WindowsLiveWriter/LookingatVirtualMemoryUsage_8607/image_thumb_1.png" width="644" height="379" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;Let’s take a look at some detail on one of the “bad ones”.&amp;#160; Here you can see the way we are tracking this.&amp;#160; You can see the “steps” in the scenario, the virtual memory after each step and the comparison to VS 2008 SP1 (for all steps where there is an equivalence).&amp;#160; You’ll see there are more bars here than steps listed, I think that’s an artifact of the slideware (not all steps are listed).&amp;#160; We use this to look for any places where VM jumps significantly or varies substantially from VS 2008 to focus investigations.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/bharry/WindowsLiveWriter/LookingatVirtualMemoryUsage_8607/image_8.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://blogs.msdn.com/blogfiles/bharry/WindowsLiveWriter/LookingatVirtualMemoryUsage_8607/image_thumb_3.png" width="644" height="415" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;We also plot the VM growth from different builds against each other.&amp;#160; In this case, you can see that in the Nov 11th build (21111) the CB died halfway through the scenario because it ran out of VM and you can see that by Nov 25th (21125) we had improved it so that that not only did it complete but it is generally better than VS 2008 (let us remember that VS 2008 isn’t flawless so we don’t blindly take parity with it as success).&amp;#160; As you can see we still have a bit of work left to do to hit out 1.5GB goal.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/bharry/WindowsLiveWriter/LookingatVirtualMemoryUsage_8607/image_10.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://blogs.msdn.com/blogfiles/bharry/WindowsLiveWriter/LookingatVirtualMemoryUsage_8607/image_thumb_4.png" width="644" height="425" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;We also track improvements over time from build to build in more of a trend fashion:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/bharry/WindowsLiveWriter/LookingatVirtualMemoryUsage_8607/image_12.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://blogs.msdn.com/blogfiles/bharry/WindowsLiveWriter/LookingatVirtualMemoryUsage_8607/image_thumb_5.png" width="644" height="482" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;And lastly we use a “ledger” format for tracking fine grained progress.&amp;#160; This is the best way I’ve found to track this kind of thing: Identify the goal and current status against it.&amp;#160; Identify the fixed currently in progress and the expected improvements (generally an informed guess) and identify the areas that are under investigation (the things that just don’t look right) and best wild ass guess you can make about how much improvement “ought” to be available based on what it is vs what you think it should be.&amp;#160; This gives you a way to see things moving through the pipeline, understand progress towards the goal and make priority trade-offs.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/bharry/WindowsLiveWriter/LookingatVirtualMemoryUsage_8607/image_16.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://blogs.msdn.com/blogfiles/bharry/WindowsLiveWriter/LookingatVirtualMemoryUsage_8607/image_thumb_7.png" width="644" height="476" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;Hopefully that gives you some insight into how we are thinking about the VM issue and the progress we are making.&lt;/p&gt;  &lt;p&gt;Brian&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9934048" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/bharry/archive/tags/Visual+Studio/default.aspx">Visual Studio</category></item><item><title>Visual Studio Testing Tools Roadshow in Chicago and Milwaulkee</title><link>http://blogs.msdn.com/bharry/archive/2009/12/08/visual-studio-testing-tools-roadshow-in-chicago-and-milwaulkee.aspx</link><pubDate>Tue, 08 Dec 2009 12:44:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9934003</guid><dc:creator>bharry</dc:creator><slash:comments>3</slash:comments><comments>http://blogs.msdn.com/bharry/comments/9934003.aspx</comments><wfw:commentRss>http://blogs.msdn.com/bharry/commentrss.aspx?PostID=9934003</wfw:commentRss><description>&lt;P&gt;Angela Dugan (Binkowski), a friend of mine in the field, asked that I help her advertise a roadshow she is doing.&amp;nbsp; Here’s what she had to say about it:&lt;/P&gt;
&lt;TABLE border=0 cellSpacing=0 cellPadding=0&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD vAlign=top width=624&gt;
&lt;P&gt;&lt;B&gt;&lt;/B&gt;&lt;/P&gt;
&lt;P&gt;&lt;B&gt;&lt;/B&gt;
&lt;TABLE border=0 cellSpacing=0 cellPadding=0&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD vAlign=top&gt;
&lt;P&gt;&lt;B&gt;&lt;A href="http://blogs.msdn.com/blogfiles/bharry/WindowsLiveWriter/VisualStudioTestingToolsRoadshowinChicag_6CE9/clip_image002_2.jpg" mce_href="http://blogs.msdn.com/blogfiles/bharry/WindowsLiveWriter/VisualStudioTestingToolsRoadshowinChicag_6CE9/clip_image002_2.jpg"&gt;&lt;IMG style="BORDER-BOTTOM: 0px; BORDER-LEFT: 0px; DISPLAY: inline; BORDER-TOP: 0px; BORDER-RIGHT: 0px" title=clip_image002 border=0 alt=clip_image002 src="http://blogs.msdn.com/blogfiles/bharry/WindowsLiveWriter/VisualStudioTestingToolsRoadshowinChicag_6CE9/clip_image002_thumb.jpg" width=23 height=23 mce_src="http://blogs.msdn.com/blogfiles/bharry/WindowsLiveWriter/VisualStudioTestingToolsRoadshowinChicag_6CE9/clip_image002_thumb.jpg"&gt;&lt;/A&gt;&lt;/B&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD vAlign=top&gt;
&lt;P&gt;&lt;B&gt;Visual Studio Testing Tools Roadshow and Deep Dive&lt;/B&gt;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;/P&gt;
&lt;P&gt;Ram Cherala, Principal Program Manager in the Visual Studio Test Tools Business, will be visiting the Midwest District to provide a deeper dive into the innovative new capabilities being introduced in Visual Studio 2010 Ultimate, Visual Studio Test Elements and Test and Lab Management products.&lt;/P&gt;
&lt;P&gt;These sessions are targeted toward Developers, Architects, and Quality Assurance teams. Attendees will be given the unique opportunity to have a first glimpse into the products and interact directly with the Redmond team responsible for designing and delivering these products to the market. We will cover a broad range of important topics including Software Quality Assurance, historical debugging, manual test runner, test impact analysis and test lab management.&lt;/P&gt;
&lt;P&gt;&lt;B&gt;Agenda:&lt;/B&gt;&lt;/P&gt;
&lt;P&gt;&lt;B&gt;&lt;/B&gt;&lt;/P&gt;
&lt;P&gt;8:30am – 9:00am................. Introductions and Continental Breakfast&lt;/P&gt;
&lt;P&gt;9:00am – 10:30am............... VS 2010 ALM Tools: Walkthrough of All New Features&lt;/P&gt;
&lt;P&gt;10:30am – 11:30am............. 2010 MSDN and Licensing Updates &lt;/P&gt;
&lt;P&gt;11:30pm – 12:00pm............. Lunch (provided by Microsoft)&lt;/P&gt;
&lt;P&gt;12:00pm – 2:00pm............... Deep Dive and Demos of VS 2010 Quality Assurance Features (Coded UI Testing, Manual Test Runner, Lab Management, etc)&lt;/P&gt;
&lt;P&gt;2:00pm – 2:15pm................. Break&lt;/P&gt;
&lt;P&gt;2:15pm – 4:00pm................. Quality Assurance Tools: Migration and Integration Options&lt;/P&gt;
&lt;P&gt;4:00pm – 4:30pm................. Feedback, Book Raffle &amp;amp; Zune Giveaway&lt;/P&gt;
&lt;P&gt;&lt;B&gt;&lt;/B&gt;&lt;/P&gt;
&lt;P&gt;&lt;B&gt;This is a FREE event – Register now to reserve your seat!&lt;/B&gt;&lt;/P&gt;
&lt;P&gt;&lt;B&gt;&lt;/B&gt;
&lt;TABLE border=0 cellSpacing=0 cellPadding=0&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD vAlign=top width=214&gt;
&lt;P&gt;&lt;B&gt;Date&lt;/B&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD vAlign=top width=240&gt;
&lt;P&gt;&lt;B&gt;Location&lt;/B&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD vAlign=top width=144&gt;
&lt;P&gt;&lt;B&gt;Register&lt;/B&gt;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD vAlign=top width=214&gt;
&lt;P&gt;&lt;B&gt;Milwaukee&lt;/B&gt;&lt;/P&gt;
&lt;P&gt;Monday, December 14, 2009&lt;/P&gt;&lt;/TD&gt;
&lt;TD vAlign=top width=240&gt;
&lt;P&gt;N19 W24133 Riverwood Drive,&lt;/P&gt;
&lt;P&gt;Suite 150 &lt;BR&gt;Waukesha, WI 53188&lt;/P&gt;&lt;/TD&gt;
&lt;TD vAlign=top width=144&gt;
&lt;P&gt;&lt;A href="http://msevents.microsoft.com/CUI/EventDetail.aspx?EventID=1032435435&amp;amp;Culture=en-US" mce_href="http://msevents.microsoft.com/CUI/EventDetail.aspx?EventID=1032435435&amp;amp;Culture=en-US"&gt;&lt;B&gt;Register Here&lt;/B&gt;&lt;/A&gt;&lt;B&gt;&lt;/B&gt;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD vAlign=top width=214&gt;
&lt;P&gt;&lt;B&gt;Chicago (Downers Grove)&lt;/B&gt;&lt;/P&gt;
&lt;P&gt;Wednesday, December 16, 2009&lt;/P&gt;&lt;/TD&gt;
&lt;TD vAlign=top width=240&gt;
&lt;P&gt;Neudesic&lt;/P&gt;
&lt;P&gt;377 E. Butterfield Road&lt;/P&gt;
&lt;P&gt;Suite 440&lt;/P&gt;
&lt;P&gt;Lombard, IL 60148&lt;/P&gt;&lt;/TD&gt;
&lt;TD vAlign=top width=144&gt;
&lt;P&gt;&lt;A href="http://msevents.microsoft.com/CUI/EventDetail.aspx?EventID=1032435439&amp;amp;Culture=en-US" mce_href="http://msevents.microsoft.com/CUI/EventDetail.aspx?EventID=1032435439&amp;amp;Culture=en-US"&gt;&lt;B&gt;Register Here&lt;/B&gt;&lt;/A&gt;&lt;B&gt;&lt;/B&gt;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD vAlign=top width=214&gt;
&lt;P&gt;&lt;B&gt;Chicago&lt;/B&gt;&lt;/P&gt;
&lt;P&gt;Thursday, December 17, 2009&lt;/P&gt;&lt;/TD&gt;
&lt;TD vAlign=top width=240&gt;
&lt;P&gt;Microsoft Office&lt;/P&gt;
&lt;P&gt;Aon Center Office&lt;/P&gt;
&lt;P&gt;200 East Randolph Drive, Suite 200 &lt;BR&gt;Chicago, IL 60601&lt;/P&gt;&lt;/TD&gt;
&lt;TD vAlign=top width=144&gt;
&lt;P&gt;&lt;A href="http://msevents.microsoft.com/CUI/EventDetail.aspx?EventID=1032435440&amp;amp;Culture=en-US" mce_href="http://msevents.microsoft.com/CUI/EventDetail.aspx?EventID=1032435440&amp;amp;Culture=en-US"&gt;&lt;B&gt;Register Here&lt;/B&gt;&lt;/A&gt;&lt;B&gt;&lt;/B&gt;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD vAlign=top width=392&gt;
&lt;TABLE border=0 cellSpacing=0 cellPadding=0&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD vAlign=top width=326&gt;
&lt;TABLE border=0 cellSpacing=0 cellPadding=0&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD vAlign=top width=99&gt;
&lt;P&gt;&lt;B&gt;&lt;A href="http://blogs.msdn.com/blogfiles/bharry/WindowsLiveWriter/VisualStudioTestingToolsRoadshowinChicag_6CE9/clip_image003_2.jpg" mce_href="http://blogs.msdn.com/blogfiles/bharry/WindowsLiveWriter/VisualStudioTestingToolsRoadshowinChicag_6CE9/clip_image003_2.jpg"&gt;&lt;IMG style="BORDER-BOTTOM: 0px; BORDER-LEFT: 0px; DISPLAY: inline; BORDER-TOP: 0px; BORDER-RIGHT: 0px" title=clip_image003 border=0 alt=clip_image003 src="http://blogs.msdn.com/blogfiles/bharry/WindowsLiveWriter/VisualStudioTestingToolsRoadshowinChicag_6CE9/clip_image003_thumb.jpg" width=79 height=104 mce_src="http://blogs.msdn.com/blogfiles/bharry/WindowsLiveWriter/VisualStudioTestingToolsRoadshowinChicag_6CE9/clip_image003_thumb.jpg"&gt;&lt;/A&gt;&lt;/B&gt;&lt;/P&gt;&lt;/TD&gt;
&lt;TD vAlign=top width=219&gt;
&lt;P&gt;Ram Cherala is the Principal Program Manager in the Visual Studio Test Tools Business, which is part of the Developer Division at Microsoft. Ram is very passionate about building a well-integrated set of tools and technologies that enable developers build, test and ship quality software.&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD vAlign=top width=99&gt;&amp;nbsp;&lt;/TD&gt;
&lt;TD vAlign=top width=219&gt;&amp;nbsp;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD vAlign=top width=326&gt;
&lt;P&gt;&lt;B&gt;&lt;A href="http://blogs.msdn.com/blogfiles/bharry/WindowsLiveWriter/VisualStudioTestingToolsRoadshowinChicag_6CE9/clip_image004_2.jpg" mce_href="http://blogs.msdn.com/blogfiles/bharry/WindowsLiveWriter/VisualStudioTestingToolsRoadshowinChicag_6CE9/clip_image004_2.jpg"&gt;&lt;IMG style="BORDER-BOTTOM: 0px; BORDER-LEFT: 0px; DISPLAY: inline; BORDER-TOP: 0px; BORDER-RIGHT: 0px" title=clip_image004 border=0 alt=clip_image004 src="http://blogs.msdn.com/blogfiles/bharry/WindowsLiveWriter/VisualStudioTestingToolsRoadshowinChicag_6CE9/clip_image004_thumb.jpg" width=164 height=159 mce_src="http://blogs.msdn.com/blogfiles/bharry/WindowsLiveWriter/VisualStudioTestingToolsRoadshowinChicag_6CE9/clip_image004_thumb.jpg"&gt;&lt;/A&gt;&lt;/B&gt;&lt;/P&gt;
&lt;P&gt;&lt;B&gt;Book raffle and Zune Give-a-way&lt;/B&gt;&lt;/P&gt;
&lt;P&gt;One random attendee will be selected to receive a brand new Zune HD!&lt;B&gt;&lt;/B&gt;&lt;/P&gt;
&lt;P&gt;&lt;B&gt;&lt;/B&gt;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;
&lt;P&gt;&lt;B&gt;&lt;/B&gt;&lt;/P&gt;
&lt;P&gt;&lt;B&gt;&lt;/B&gt;&lt;/P&gt;
&lt;P&gt;&lt;B&gt;&lt;/B&gt;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9934003" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/bharry/archive/tags/Visual+Studio+Team+System/default.aspx">Visual Studio Team System</category><category domain="http://blogs.msdn.com/bharry/archive/tags/Visual+Studio/default.aspx">Visual Studio</category></item><item><title>Some WPF Designer Performance Improvements</title><link>http://blogs.msdn.com/bharry/archive/2009/12/07/some-wpf-designer-performance-improvements.aspx</link><pubDate>Tue, 08 Dec 2009 00:35:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9933830</guid><dc:creator>bharry</dc:creator><slash:comments>10</slash:comments><comments>http://blogs.msdn.com/bharry/comments/9933830.aspx</comments><wfw:commentRss>http://blogs.msdn.com/bharry/commentrss.aspx?PostID=9933830</wfw:commentRss><description>&lt;p&gt;We've heard loud and clear that the WPF designer performance in Beta 2 was unacceptable.&amp;#160; Well, in a good kind of way, we knew that before we shipped Beta 2.&amp;#160; This was one case where our performance tests were telling us the right thing.&amp;#160; We discovered some issues late in the Beta 2 cycle (partially a regression, I think) and didn't have time to fully test a solution to address the performance issues.&amp;#160; We did code it up and include it in the Beta but you have to use a registry key to enable it.&amp;#160; Here's thread on it if you want to give it a try:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://social.msdn.microsoft.com/Forums/en-US/vswpfdesigner/thread/4511d43f-c134-4329-a970-e374252a620e"&gt;http://social.msdn.microsoft.com/Forums/en-US/vswpfdesigner/thread/4511d43f-c134-4329-a970-e374252a620e&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;This change will often address slowness and random pauses in the WPF designer.&amp;#160; It's not the only cause but we've found most people who try it see good results.&amp;#160; We've since had time to finish it and it is on permanently from here on out.&lt;/p&gt;  &lt;p&gt;Today I saw some perfmon graphs that demonstrate how WPF designer overhead is improving over time.&lt;/p&gt;  &lt;p&gt;This first graph is from Beta 2 without the reg key flipped.&amp;#160; The very first spike is the CPU hit to open a C# file.&amp;#160; the rest is the CPU hit to open an empty XAML file.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/bharry/WindowsLiveWriter/SomeWPFDesignerPerformanceImprovements_6475/clip_image001_2.jpg"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="clip_image001" border="0" alt="clip_image001" src="http://blogs.msdn.com/blogfiles/bharry/WindowsLiveWriter/SomeWPFDesignerPerformanceImprovements_6475/clip_image001_thumb.jpg" width="148" height="84" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Here's the state with the reg key flipped.&amp;#160; Don't be suprised that the reg key didn't make a huge difference in this scenario.&amp;#160; It makes a much bigger difference in other scenarios.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/bharry/WindowsLiveWriter/SomeWPFDesignerPerformanceImprovements_6475/clip_image001%5B4%5D.jpg"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="clip_image001[4]" border="0" alt="clip_image001[4]" src="http://blogs.msdn.com/blogfiles/bharry/WindowsLiveWriter/SomeWPFDesignerPerformanceImprovements_6475/clip_image001%5B4%5D_thumb.jpg" width="140" height="84" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;And here's the current graph for the same thing with current bits.&amp;#160; As you can see, it continued to improve.&lt;/p&gt;  &lt;p&gt;&lt;span style="font-family: &amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;; color: #943634; font-size: 11pt"&gt;&lt;span style="font-family: &amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;; color: #943634; font-size: 11pt"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/bharry/WindowsLiveWriter/SomeWPFDesignerPerformanceImprovements_6475/clip_image001%5B6%5D.jpg"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="clip_image001[6]" border="0" alt="clip_image001[6]" src="http://blogs.msdn.com/blogfiles/bharry/WindowsLiveWriter/SomeWPFDesignerPerformanceImprovements_6475/clip_image001%5B6%5D_thumb.jpg" width="100" height="84" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;span style="font-family: &amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;; color: #943634; font-size: 11pt"&gt;&lt;span style="font-family: &amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;; color: #943634; font-size: 11pt"&gt;&lt;span style="font-family: &amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;; color: #943634; font-size: 11pt"&gt;Brian&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9933830" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/bharry/archive/tags/Visual+Studio/default.aspx">Visual Studio</category></item><item><title>WPF TreeView performance tip</title><link>http://blogs.msdn.com/bharry/archive/2009/12/07/wpf-treeview-performance-tip.aspx</link><pubDate>Mon, 07 Dec 2009 19:42:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9933653</guid><dc:creator>bharry</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.msdn.com/bharry/comments/9933653.aspx</comments><wfw:commentRss>http://blogs.msdn.com/bharry/commentrss.aspx?PostID=9933653</wfw:commentRss><description>&lt;P&gt;Another of the many performance issues we hit (trust me not all of them were WPF related, it just so happens that the first two I've blogged about were)...&lt;/P&gt;
&lt;P&gt;&lt;A href="http://blogs.msdn.com/permanenttan/archive/2009/11/20/wpf-treeview-memory-consumption-and-performance.aspx" mce_href="http://blogs.msdn.com/permanenttan/archive/2009/11/20/wpf-treeview-memory-consumption-and-performance.aspx"&gt;http://blogs.msdn.com/permanenttan/archive/2009/11/20/wpf-treeview-memory-consumption-and-performance.aspx&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;We hit this in the tree view you use to select which branches you want to visualize change for.&amp;nbsp;A 108MB savings (on an admittedly artificially large data set), not bad :)&lt;/P&gt;
&lt;P&gt;Brian&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9933653" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/bharry/archive/tags/Visual+Studio/default.aspx">Visual Studio</category></item></channel></rss>