<?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>Visual Studio 2010 Performance Part 2: Text Editor</title><link>http://blogs.msdn.com/ricom/archive/2009/06/05/visual-studio-2010-performance-part-2-text-editor.aspx</link><description>Part 1 of this series talked about the startup problems we face. In Part 2, I want to talk about the editor. Many people have reported that editing with the new editor is slower. I’ve experienced the same thing myself so I certainly do not want to accuse</description><dc:language>en-US</dc:language><generator>CommunityServer 2.1 SP1 (Build: 61025.2)</generator><item><title>re: Visual Studio 2010 Performance Part 2: Text Editor</title><link>http://blogs.msdn.com/ricom/archive/2009/06/05/visual-studio-2010-performance-part-2-text-editor.aspx#9702729</link><pubDate>Sat, 06 Jun 2009 14:33:40 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9702729</guid><dc:creator>GrayShade</dc:creator><description>&lt;p&gt;The selection gradient and the menus are pretty slow. Can't WPF be blamed for this?&lt;/p&gt;
</description></item><item><title>re: Visual Studio 2010 Performance Part 2: Text Editor</title><link>http://blogs.msdn.com/ricom/archive/2009/06/05/visual-studio-2010-performance-part-2-text-editor.aspx#9702739</link><pubDate>Sat, 06 Jun 2009 14:56:14 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9702739</guid><dc:creator>tobi</dc:creator><description>&lt;p&gt;why do you think the gradients are slow? maybe calculating the position for the selection boxes is slow. you cannot know.&lt;/p&gt;
</description></item><item><title>re: Visual Studio 2010 Performance Part 2: Text Editor</title><link>http://blogs.msdn.com/ricom/archive/2009/06/05/visual-studio-2010-performance-part-2-text-editor.aspx#9702915</link><pubDate>Sat, 06 Jun 2009 19:40:04 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9702915</guid><dc:creator>JD</dc:creator><description>&lt;p&gt;As Rico can appreciate, all I care about is in scenarios that are important to me. &lt;/p&gt;
&lt;p&gt;If out of the box VS2010 is slower diting CSHarp files, it's slower. If I am less productive, that sucks. If startup time is worse than the already slow time, I won't be impressed. &lt;/p&gt;
&lt;p&gt;I also use ReSharper, so I will judge that too, but I'll rate the core IDE based on its own merits. So far most of the blog entries about the next Visual Studio seem to be about lowering expectations about its performance. That's too bad. &amp;nbsp;&lt;/p&gt;
&lt;p&gt;I hope you are using metrics that correspond to things I care about. &lt;/p&gt;
</description></item><item><title>re: Visual Studio 2010 Performance Part 2: Text Editor</title><link>http://blogs.msdn.com/ricom/archive/2009/06/05/visual-studio-2010-performance-part-2-text-editor.aspx#9702970</link><pubDate>Sat, 06 Jun 2009 20:51:20 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9702970</guid><dc:creator>noahric</dc:creator><description>&lt;p&gt;@JD:&lt;/p&gt;
&lt;p&gt;I don't think Rico's point is to lower expectations. &amp;nbsp;I think he's trying to point out that perceived typing performance isn't great right now, but, most importantly, *it can be fixed*, given the path that he outlined (moving people off the shims and improving the time spent in responding to various editor events). &amp;nbsp;The problem isn't that the new editor is inherently less efficient than the old, or that WPF is that big of a problem (as most people tend to assume); the problem also isn't really a mystery - Rico, Cameron, and others have a good understanding of where the time is going, and what we have to improve.&lt;/p&gt;
&lt;p&gt;Also, I read the startup article not as an intent to lower expectations, but to explain that the time from startup to the app is ready to respond is less important than the time from startup to the project is open and you can type in the editor. &amp;nbsp;It's kinda like saying the time from turning your computer on until you get the login screen is less important than the time from turning your computer on until you've logged in and can actually use the computer.&lt;/p&gt;
</description></item><item><title>re: Visual Studio 2010 Performance Part 2: Text Editor</title><link>http://blogs.msdn.com/ricom/archive/2009/06/05/visual-studio-2010-performance-part-2-text-editor.aspx#9703142</link><pubDate>Sun, 07 Jun 2009 02:02:50 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9703142</guid><dc:creator>GrayShade</dc:creator><description>&lt;p&gt;@tobi:&lt;/p&gt;
&lt;p&gt;Virtually any text editor needs the same box calculations, so that shouldn't be a reason for poor performance. Also, the selection problem is seen mostly on computers with poor graphics cards.&lt;/p&gt;
&lt;p&gt;I'd ask about things zooming in the new Parallel Stacks window; it's a pain to watch.&lt;/p&gt;
</description></item><item><title>re: Visual Studio 2010 Performance Part 2: Text Editor</title><link>http://blogs.msdn.com/ricom/archive/2009/06/05/visual-studio-2010-performance-part-2-text-editor.aspx#9703259</link><pubDate>Sun, 07 Jun 2009 04:17:05 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9703259</guid><dc:creator>ricom</dc:creator><description>&lt;p&gt;Ulimately, if the editor is slow, it won't matter why. &amp;nbsp;It's just slow. &amp;nbsp;Any excuses I might offer would be worthless anyway.&lt;/p&gt;
&lt;p&gt;But I do think it's helpful to understand what is going on, where the problems lie and where they don't. &amp;nbsp;That's the point of the posting.&lt;/p&gt;
&lt;p&gt;One of the interesting things about performance work is that it's &amp;quot;equal opportunity&amp;quot;. &amp;nbsp;Politics and personal taste don't enter into it. &amp;nbsp;I just go after whatever comes to the top of the profile.&lt;/p&gt;
</description></item><item><title>re: Visual Studio 2010 Performance Part 2: Text Editor</title><link>http://blogs.msdn.com/ricom/archive/2009/06/05/visual-studio-2010-performance-part-2-text-editor.aspx#9703430</link><pubDate>Sun, 07 Jun 2009 06:58:43 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9703430</guid><dc:creator>Troy</dc:creator><description>&lt;p&gt;ricom: Good reply. I am a bit tired to comment on the whole post, but I will do so when I feel a bit less drained.&lt;/p&gt;
&lt;p&gt;Needless to say though that I am really happy that you are the person entrusted with the VS2010 performance issues.&lt;/p&gt;
</description></item><item><title>Editor perf: markers vs. tracking spans</title><link>http://blogs.msdn.com/ricom/archive/2009/06/05/visual-studio-2010-performance-part-2-text-editor.aspx#9703487</link><pubDate>Sun, 07 Jun 2009 07:36:44 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9703487</guid><dc:creator>Letters from the editor</dc:creator><description>&lt;p&gt;Rico just put up an interesting post on editor performance , so if you have a few minutes, go check it&lt;/p&gt;
</description></item><item><title>Visual Studio 2010 Performance Part 2: Text Editor - Rico Mariani</title><link>http://blogs.msdn.com/ricom/archive/2009/06/05/visual-studio-2010-performance-part-2-text-editor.aspx#9703617</link><pubDate>Sun, 07 Jun 2009 09:38:15 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9703617</guid><dc:creator>DotNetShoutout</dc:creator><description>&lt;p&gt;Thank you for submitting this cool story - Trackback from DotNetShoutout&lt;/p&gt;
</description></item><item><title>re: Visual Studio 2010 Performance Part 2: Text Editor</title><link>http://blogs.msdn.com/ricom/archive/2009/06/05/visual-studio-2010-performance-part-2-text-editor.aspx#9704992</link><pubDate>Mon, 08 Jun 2009 00:29:13 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9704992</guid><dc:creator>Will</dc:creator><description>&lt;p&gt;&amp;quot;One of the interesting things about performance work is that it's &amp;quot;equal opportunity&amp;quot;. &amp;nbsp;Politics and personal taste don't enter into it. &amp;nbsp;I just go after whatever comes to the top of the profile.&amp;quot;&lt;/p&gt;
&lt;p&gt;Hmmm. &amp;nbsp;But the guy doing the profiling gets to choose the workload he's running.&lt;/p&gt;
&lt;p&gt;If your workload isn't like ours, then aren't we just as out of luck as if you were cherry-picking the profiler's results?&lt;/p&gt;
</description></item><item><title>re: Visual Studio 2010 Performance Part 2: Text Editor</title><link>http://blogs.msdn.com/ricom/archive/2009/06/05/visual-studio-2010-performance-part-2-text-editor.aspx#9705462</link><pubDate>Mon, 08 Jun 2009 04:24:40 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9705462</guid><dc:creator>Fred Morrison</dc:creator><description>&lt;p&gt;All the more reason to avoid VS 2010 until Service Pack 1. &amp;nbsp;Come to think of it, waiting for Service Pack 1 of *ANY* Microsoft product is a wise idea.&lt;/p&gt;
</description></item><item><title>re: Visual Studio 2010 Performance Part 2: Text Editor</title><link>http://blogs.msdn.com/ricom/archive/2009/06/05/visual-studio-2010-performance-part-2-text-editor.aspx#9707920</link><pubDate>Mon, 08 Jun 2009 14:14:47 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9707920</guid><dc:creator>tobi</dc:creator><description>&lt;p&gt;then you better dont use linux cause there wont ever be a service pack that can fixup _that_ crap.&lt;/p&gt;
</description></item><item><title>re: Visual Studio 2010 Performance Part 2: Text Editor</title><link>http://blogs.msdn.com/ricom/archive/2009/06/05/visual-studio-2010-performance-part-2-text-editor.aspx#9708131</link><pubDate>Mon, 08 Jun 2009 17:04:55 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9708131</guid><dc:creator>pingpong</dc:creator><description>&lt;p&gt;Ok, after reading part 2 of this series I'm getting the general message: &amp;quot;VS2010 sucks perf-wise, but there are sophisticated reasons for that&amp;quot;. &lt;/p&gt;
&lt;p&gt;Why on Earth did you release this as 'beta'?&lt;/p&gt;
</description></item><item><title>re: Visual Studio 2010 Performance Part 2: Text Editor</title><link>http://blogs.msdn.com/ricom/archive/2009/06/05/visual-studio-2010-performance-part-2-text-editor.aspx#9715946</link><pubDate>Tue, 09 Jun 2009 15:55:28 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9715946</guid><dc:creator>SimplyGed</dc:creator><description>&lt;p&gt;I like reading these blogs. It gives me an insight into how MS are developing their products, the problems they are seeing and how they are addressing them.&lt;/p&gt;
&lt;p&gt;I try to download BETA software when I can and use it as often as possible (at the moment I'm running VS2010 on Windows 7 RC). I have to say, I love using both - especially, in VS2010, the ability to move the tool windows across multiple monitors. But, I realise one thing about both products - they are not RTM !! Now, to me, this means a few things, but mostly :&lt;/p&gt;
&lt;p&gt;1. They will contain bugs&lt;/p&gt;
&lt;p&gt;2. Performance won't be the best&lt;/p&gt;
&lt;p&gt;@Fred Morrison:&lt;/p&gt;
&lt;p&gt;Saying you won't use the software until SP1 leave you at a disadvantage IMHO. But, I understand that some people don't have the resources to run BETA and RTM software. It is time consuming as well.&lt;/p&gt;
&lt;p&gt;Personally, I want to get onboard as early as I can and, if possible, help to iron out the problems that I am seeing by letting MS collect data on what I am doing (and when things go wrong). &lt;/p&gt;
&lt;p&gt;@Will:&lt;/p&gt;
&lt;p&gt;No one can possibly predict every possible use of the software, so the feedback/data collection features help MS to see my issues based on my usage.&lt;/p&gt;
&lt;p&gt;If the tables were turned, would you want to get as much real-world data on how your products were being used and the problems that were occurring?&lt;/p&gt;
&lt;p&gt;@Rico:&lt;/p&gt;
&lt;p&gt;I'd really like to know more about debugger performance in VS2010. What steps are being made in the direction? Does it use the MEF framework to manage functionalilty? Will it be easy to extend?&lt;/p&gt;
&lt;p&gt;I'm looking forward to the next drop of VS2010 - I just wish they were as regular as the Windows 7 drops that kept appearing (even if they were not official!)&lt;/p&gt;
</description></item><item><title>re: Visual Studio 2010 Performance Part 2: Text Editor</title><link>http://blogs.msdn.com/ricom/archive/2009/06/05/visual-studio-2010-performance-part-2-text-editor.aspx#9716183</link><pubDate>Tue, 09 Jun 2009 17:47:25 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9716183</guid><dc:creator>jalf</dc:creator><description>&lt;p&gt;@pingpong: Perhaps *because* it is beta. I'd be more worried if they release the final version with the same performance characteristics.&lt;/p&gt;
&lt;p&gt;The point of a beta isn't generally speaking to impress.&lt;/p&gt;
&lt;p&gt;And drawing conclusions about having to wait for a SP1 is silly as well. You don't know that 1) the problems won't be fixed in RTM, and 2) that they *will* be fixed in SP1. They could be fixed next week, or they could never be fixed. In neither case is &amp;quot;wait for SP1&amp;quot; going to be a sensible strategy.&lt;/p&gt;
</description></item><item><title>re: Visual Studio 2010 Performance Part 2: Text Editor</title><link>http://blogs.msdn.com/ricom/archive/2009/06/05/visual-studio-2010-performance-part-2-text-editor.aspx#9732065</link><pubDate>Fri, 12 Jun 2009 12:10:43 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9732065</guid><dc:creator>Steven Padfield</dc:creator><description>&lt;p&gt;Hey Rico,&lt;/p&gt;
&lt;p&gt;Regarding the shims...&lt;/p&gt;
&lt;p&gt;Not sure if this is related, but a year or two ago I was working on a .NET product that used legacy ADO, and I found that there was a severe performance bottleneck during instantiation of COM objects (notably ADO connections and recordsets). &amp;nbsp;Using the CLR Profiler, I tracked this down to the allocation of dozens of strings per instantiation due to license checking.&lt;/p&gt;
&lt;p&gt;Apparently the RuntimeLicenseContext class is allocating around 6.8 KB for each COM object instantiation, about 4.1 KB of which are strings (chiefly due to multiple calls to get the filename of the interop assembly). &amp;nbsp;Setting LicenseManager.CurrentContext to a DesigntimeLicenseContext solves this problem. &amp;nbsp;In my attached sample, it improves the instantation time for ADODB.Connections by 37%. &amp;nbsp;(Runtime license context = 1205.100 us per instance; Designtime license context = 759.067 us per instance; release build of test was run 5 times on a fresh boot, best and worst times were removed to calculate average).&lt;/p&gt;
&lt;p&gt;Anyway, your post reminded me of this and I thought I would take a shot in the dark on the off chance this might be related.&lt;/p&gt;
&lt;p&gt;BTW, is there an explanation behind this phenomenon? &amp;nbsp;Is the runtime license context supposed to be so slow? &amp;nbsp;Is it allowed to use the designtime license context in production software?&lt;/p&gt;
&lt;p&gt;Thanks,&lt;/p&gt;
&lt;p&gt;Steven&lt;/p&gt;
&lt;p&gt;---------------------&lt;/p&gt;
&lt;p&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;static void Main()&lt;/p&gt;
&lt;p&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{&lt;/p&gt;
&lt;p&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;const int count = 10000;&lt;/p&gt;
&lt;p&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Test(1000, true, null);&lt;/p&gt;
&lt;p&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Test(count, false, &amp;quot;runtime&amp;quot;);&lt;/p&gt;
&lt;p&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;LicenseManager.CurrentContext = new DesigntimeLicenseContext();&lt;/p&gt;
&lt;p&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Test(count, false, &amp;quot;designtime&amp;quot;);&lt;/p&gt;
&lt;p&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Console.Write(&amp;quot;Press enter to exit...&amp;quot;);&lt;/p&gt;
&lt;p&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Console.ReadLine();&lt;/p&gt;
&lt;p&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}&lt;/p&gt;
&lt;p&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;private static void Test(int count, bool warmup, string licenseContextType)&lt;/p&gt;
&lt;p&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{&lt;/p&gt;
&lt;p&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (warmup)&lt;/p&gt;
&lt;p&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Console.WriteLine(&amp;quot;Warming up...&amp;quot;);&lt;/p&gt;
&lt;p&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;else&lt;/p&gt;
&lt;p&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Console.WriteLine(&amp;quot;Running {0} iterations with {1} license context...&amp;quot;, count, licenseContextType);&lt;/p&gt;
&lt;p&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Stopwatch timer = new Stopwatch();&lt;/p&gt;
&lt;p&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;timer.Start();&lt;/p&gt;
&lt;p&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;for (int i = 1; i &amp;lt; count; i++)&lt;/p&gt;
&lt;p&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;new ADODB.Connection();&lt;/p&gt;
&lt;p&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;timer.Stop();&lt;/p&gt;
&lt;p&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (!warmup)&lt;/p&gt;
&lt;p&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{&lt;/p&gt;
&lt;p&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Console.WriteLine(&amp;quot;{0:0.000000} us per call&amp;quot;, (double)timer.ElapsedMilliseconds * 1000 / count);&lt;/p&gt;
&lt;p&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Console.WriteLine();&lt;/p&gt;
&lt;p&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}&lt;/p&gt;
&lt;p&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;}&lt;/p&gt;
</description></item><item><title>re: Visual Studio 2010 Performance Part 2: Text Editor</title><link>http://blogs.msdn.com/ricom/archive/2009/06/05/visual-studio-2010-performance-part-2-text-editor.aspx#9759264</link><pubDate>Tue, 16 Jun 2009 10:18:51 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9759264</guid><dc:creator>Ryan Molden [MSFT]</dc:creator><description>&lt;p&gt;&amp;gt;The selection gradient and the menus are pretty slow. Can't WPF be blamed for this?&lt;/p&gt;
&lt;p&gt;I can't speak for the gradients (though they do cause problems over remote desktop) but I can speak to the menus. &amp;nbsp;Menu perf is something I am interested in. &amp;nbsp;There are a few things that can account for (but not entirely excuse) the menu perf that have nothing (or little) to do with WPF:&lt;/p&gt;
&lt;p&gt;1: &amp;nbsp;Our menus don't have their children generated until the very first time you drop them. &amp;nbsp;We have tons of menus (way more than you see at any given time) and generating all their children eagerly would be a HUGE perf hit. &amp;nbsp;This causes a 'first drop' penalty where it takes slightly longer on the first drop than all subsequent drops.&lt;/p&gt;
&lt;p&gt;2: &amp;nbsp;We are an extensible system. &amp;nbsp;This means that menu contributions come from far and wide.&lt;/p&gt;
&lt;p&gt;3: &amp;nbsp;VS is still (and likely will be for a long time) a pull system in terms of command state updating. &amp;nbsp;All existing packages are written to expect the IDE to QueryStatus them to get the current state of the commands they contributes (i.e. visible, enabled, current text, etc..)&lt;/p&gt;
&lt;p&gt;4: &amp;nbsp;Right before we display a menu we need to run through all items on the menu (again there are generally MANY more than you see at any given time). &amp;nbsp;For each item we need to make sure its state is up to date. &amp;nbsp;This entails QS calls into the contributors in many cases and that can take arbitrarily long. &amp;nbsp;I have seen QS handlers that create tool windows or try and contact remote servers. &amp;nbsp;This is a BAD idea for a QS handler, I file high pri bugs on them everytime I see it happening (the current champion who shall remain nameless takes over 3 seconds to respond to the first QS call on the drop of a menu!!).&lt;/p&gt;
&lt;p&gt;5: &amp;nbsp;Packages may be written in managed or native code thus anytime we call into a package we may or may not be paying a interop transition cost (it is generally impossible to tell if there will be a transition or not).&lt;/p&gt;
&lt;p&gt;6: &amp;nbsp;The CLR can do...interesting things during interop transitions. &amp;nbsp;For instance during Dev10 we noticed that everytime it did an interop transition if there were any RCWs eligible for cleanup it would eagerly clean them up. &amp;nbsp;That is fine for some systems but in systems where you have lots of short lived RCWs you end up spending the vast majority of your time doing this cleanup. &amp;nbsp;There were changes made in the CLR to help us avoid this penalty so it shouldn't be in play in Beta1 (or RTM).&lt;/p&gt;
&lt;p&gt;7: &amp;nbsp;WPF is not a synchronous rendering technology like Win32. &amp;nbsp;When you 'invalidate' &amp;nbsp;a region it isn't immediately repainted, instead the system takes note of some bounding region that is dirty, when the render thread gets around to its next render pass it rerenders what it needs to do and then swaps the current display for the newly rendered one. &amp;nbsp;For the most part this should be instantaneous, but complex visual changes can cause it to take slightly longer than we would like.&lt;/p&gt;
&lt;p&gt;Add all these things together and menu perf is a battle we are always fighting. &amp;nbsp;Beta1 perf here was certainly not where anyone wanted it to be and I think we are making great strides in making some good fixes here for RTM, but that is about all the detail I can go into :) &amp;nbsp;Do feel free to contact me directly &amp;nbsp;(alias is first initial of first name + last name @ microsoft.com), and I will periodically check on this blog as it seems a hotspot for perf discussion :)&lt;/p&gt;
&lt;p&gt;Ryan&lt;/p&gt;
</description></item></channel></rss>