VS2010: On Triangles and Performance


In February I blogged about the new look for VS2010.  You gave us a huge amount of feedback which I really appreciate.  I wanted to follow up on a couple of the themes that popped:  the outlining mode with triangles and performance.

Outlining
You spoke loudly and clearly that you didn’t like the triangle outline mode.  Based on this feedback, the team actually changed this feature in mid-flight during Beta 1 to reflect your feedback:  no more triangles!!  Here are some updated screen shots:

image

Hovering the cursor anywhere on the line highlights that region, double clicking the line will collapse it:

image

Once collapsed you can hover over the […] region to see a preview of the underlying buffer:

image

The region can then be expanded again either by clicking on the ellipses or the [+].

I want to thank everyone for weighing in on the new design.  Your feedback directly led to changes in the product and as a result you’ll never see the original design in a public build.

Performance
Performance is another area you called out and something I care passionately about myself.  In the interest of transparency I want to provide some updates about how we are doing and where we are headed.

First, we measure a *lot* of scenarios both with the core of the VS Pro experience but also with TFS server operations.  We have literally hundreds of goals we track in the product.  When a developer checks new code into the tree, it is also measured against a set of those goals to check for regressions (Regression Prevention System or RPS).  As an example of these scenarios, a typical end to end test for VS Pro might include:

  • Start VS & load solution
  • Scroll down in a large file
  • Type a new method
  • Show Add Reference dialog
  • Add new form
  • Show toolbox
  • Add new control to form
  • Add event handler to control
  • Open existing form
  • Build/rebuild
  • Step into (F11 10 times)
  • Stop debugging
  • Close VS (w/solution open)

This is just an example but essentially I want to take a very typical daily usage of the tool and make sure it works really well.  In addition to raw times for every step, we also do a version where we weight some of the steps as more important.  For example you may only start VS once a day (or less) but you are likely to be typing all day long.

We run these scenarios on a variety of hardware, multiple versions of Windows, using our primary languages (C#, VB, C++, etc), using our presentation technologies (XAML, HTML, Windows Forms), etc.

For Beta 1 we are making progress on performance but it is not yet where I want it to be.  For example the VB / Windows Forms application is actually doing pretty well while the VB / ASP.NET application is slower than VS2008 (similar with C#).

I’m committed to having the new innovations in VS2010 (editor, WPF, etc) while still maintaining a fast environment.  I’ve asked Rico Mariani to dedicate a significant amount of time working on performance for this release to help make sure we get there.

Beta 1
We are getting *very* close to releasing Beta 1.  Stay tuned here for the formal announce of the release and keep sending us your feedback!

Comments (34)

  1. Jason Zander, the Visual Studio general manager, just posted a follow up to his post regarding the new

  2. Shrike says:

    Please, also consider the following scenario during your test:

    Open a solution which is under source control (TFS)

    Try to add a new C# file into project which is not checked out

    VS automatically get the latest version of a project

    A server version of a project is newer that ours.

    VS asks us would we like to reload a project.

    We say "yes".

    A prjoect unload and than load again.

    I experienced VS very significant performance degradation.

    Often VS continue consume CPU after projects are reloaded without any visible reason.

  3. Dan Smith says:

    Thank you for listening and removing the triangles.  The +/- glyphs really do look much cleaner and it makes a big difference.

    Are the triangles also removed from the other places they crept into e.g. the solution explorer?  It would be nice to have consistency across the board.

    I’ve also noticed on some recent screencasts that the expand/collapse glyphs fade out of view when the cursor leaves the window a la the maddening fading tree view "feature" introduced in Vista.  Again, just because Vista jumped off the cliff of insanity, does not mean it’s a good idea to follow it over the edge.  Hiding information that could once be seen at a glance is a real productivity drain.

    As for the new outlining features, it’s great that you guys have taken the time to think about these and they look like they’re going to be really handy.  I especially like the ability to collapse a region from any point just by clicking the margin 🙂

    Two other minor points from the screenshot:

    * Why is the top toolbar so tall?  First impressions are important and you probably don’t want the first thing users say when they load up VS2010 to be "ugggg!".

    * Looks like there’s an extra line at the end of the collapsed region preview popup, hope that’s on the cards for being fixed.

    Overall things are looking good, can’t wait to get hold of the upcoming beta and try out all the new features 🙂

  4. Well if JasonZ can blog about it , I suppose that means I can too. 🙂 He talks about some changes in

  5. Jasonz says:

    Shrike – we do track exactly the scenario you describe.  in fact one place we’ve improved in VS2010 is get speeds.

    Dan – one of our goals is to be a well behaved Windows application including following the themes. you will see the same outlining mode for things like tree views, but we made the changes to the editor.

  6. Yaakov Davis says:

    Not directly related to the post, but what about Edit & Continue?

    Since the release of C# 3.0 and LINQ, the feature has become almost useless. It simply don’t work in classes containing LINQ queries, that is, everywhere.

    Are there plans to make it work in more scenarios?

  7. Enrico says:

    I totally agree with Yaakov Davis. Also Edit and Continue doesn’t work when compiling to x64. Hope that get fixes too.

  8. James Hancock says:

    The biggest problem I face is that if a .cs file gets over about 1000 lines, it starts chugging and taking forever to edit anything.

    This is common when dealing with Windows Forms because of all of the events etc. on a standard form, so re factoring isn’t an option.

  9. It would be good to have syntax colored code in those tooltips when you hover over ellipsis.

  10. Thank you for submitting this cool story – Trackback from DotNetShoutout

  11. Des says:

    And still you don’t address the number of comments you got in the previous post regarding the Ribbon.

    Have you used VS, do you not notice how many menus and toolbars there are? With this many; the menu/toolbar metaphore is impractical, even if you don’t want to use the ribbon you still need to come up with a better solution than almost 40 toolbars and hundreds of commands littered on the menu.

  12. Mark Rendle says:

    Good to know that Rico’s on the performance case. It’s always nice when a new version runs faster than the old one.

  13. Robert says:

    What’s with the small screenshots? Is it meant to hide WPF blur?

  14. Jasonz says:

    Yaakov/Enrico – I’ve passed on your feedback to the debugger and langauge teams

    James – scaling to large text files is a performance scenario, I’ll make sure your scenario is on the list

    Huseyin – thanks for the suggestion

    Des – we’ve debated Ribbons repeatedly in planning for VS2010.  They are not on our plan of record for this release, sorry

    Mark – I’ll tell him you said so 🙂

    Robert – not trying to hide anything, I’m using Live Writer for my blog and I’ve found the default column size for my format clips to the right.  the beta is coming out soon so give it a shot and you’ll be able to load it up on multiple 20" monitors with the new tear off window support

  15. Boris Dušek says:

    In VC++, when having a property sheet system, after  reordering macros or adding a new one, hitting "Apply" in the property pages dialog sometimes takes  a few (tens) of seconds.

  16. Hitesh says:

    Hi Jason,

    2 Thumbs-up for good work!

    I am glad to see that your team has taken care of many suggestions but I still don’t see any work being done to implement all time great feature of classic VS-6 (VB 6 IDE) “procedure view” and “full module view” option on bottom of the editor. “Procedure view” helps developer to concentrate on a single procedure without having looking at other part of the code. This is very imp from developers point of view when criticle changes / debuggins is done. I request you to pl pl pl bring back the classic feature.

    Hitesh Davey

    Chennai – INDIA

  17. Waqas says:

    Hi Jason, Where is the most requested RIBBON? I think there were a lot of comments about adding ribbon to VS. But you didn’t added that? Why? R there any plans to add this UI …

  18. C#/VS2010 Null is Not Empty VS2010: On Triangles and Performance – It sure looks like the *very* soon Beta 1 will exhibit some great work on Outlining and Performance Parallel Tasks – new Visual Studio 2010 debugger window ASP.NET Tip #61: Did you know…How

  19. Pop Catalin says:

    > Hi Jason, Where is the most requested RIBBON? I think there were a lot of comments about adding ribbon to VS. But you didn’t added that? Why? R there any plans to add this UI …

    I sure hope not, the ribbon is a good UI for office, not for VS imho. There’s really no need for a ribbon, it occupies too much space and, besides VS users use shortcuts allot more than clicking buttons on a menu …

  20. Amit Mohindra [MSFT] says:

    >In VC++, when having a property sheet system, after  reordering macros or adding a new one, hitting "Apply" in the property pages dialog sometimes takes  a few (tens) of seconds.

    Hi Boris,

    Thanks for sharing the feedback with us. We wanted to clarify if this is the behavior that you are experiencing is in VS2010 or VS2008.

    It does seem excessive that it takes 10 seconds to apply the settings. Does your property sheet have nested property sheet?

    We tried to repro the scenario in-house however on a simple project both for VS2010 and VS2008 and were not able to directly reproduce the behavior.

    We would definitely like to debug and resolve the issue. Please feel free to contact me at amitmo at microsoft dot com and I would be glad to help.

    Thanks,

    Amit Mohindra

    Program Manager

    Visual C++ Team

  21. Waqas says:

    > I sure hope not, the ribbon is a good UI for office, not for VS imho. There’s really no need for a ribbon, it occupies too much space and, besides VS users use shortcuts allot more than clicking buttons on a menu …

    Whit this many commands and menus in VS, its not feasible to stay glued with the *old* fashioned menus. Ribbon provides with the ease of discovery of functions. If you need more space, can’t you autohide the ribbon in office 2007? (Or you can buy more place in Mars!)

  22. I actually liked the triangles, will there be the ability to turn this on in the final version?

    Steve

  23. Jasonz says:

    Boris – Amit from the VC++ team will try to follow up with you on your issue

    Hitesh – we don’t have that view right now, although in theory it could be written as a new editor extension.

    Waqas/Pop – We’ve debated the ribbon a lot and I’ve found smart people can agree to disagree 🙂  Regardless for VS2010 we will not be adding a ribbon.  We’ll contiue to think about pros / cons on this one and perhaps in a future version we may consider adding one (with options to allow you to use it or not).

    Steve – sorry, we took the triangles out.  The triangles really worked the same way as the [+] or [-] in the current version, the key thing we added back in was to actually draw the line so you can see it.  Let us know how you like it with Beta 1.

  24. Waqas says:

    What do you mean by a FUTURE VERSION?  Either Beta 2, RTM, RC of VS 2010 or VS 2011 VS 2012 whichever is nex? Thanks

  25. KodefuGuru says:

    Visual Studio 2010 Beta 1 Available Today

  26. Stas says:

    Looking at the pics I assume VS 2010 will open new tabs to the right of currently opened ones, not to the left as it is in VS 2005 and 2008 (which was stupid and counter-intuitive, IMHO). Am I right? 🙂 Or not? 🙁

    What about handling of opened tabbed documents? I would like them to appear in the list in the order I opened them, and that order is preserved when I go to the currently hidden tab (like in IE), and not that tabs are listed alphabetically and hidden tab jumps to the top when I open it (other stupid features of VS 2005/8). Or go back to how it was in VS 2003. 🙂

  27. rh says:

    Thank you, thank you!  The triangles were going to drive me crazy.  Long live [+]!

  28. Waqas says:

    It’s not available today. It’s available TOMORROW. I mean my clock is 12 hours ahead USA.

  29. Keith Patrick says:

    I musta missed something, because there is no (enabled) option to install the MSDN documentation, nor is there a link on the download page. Kind of a pain on my netbook, as it’s detached from the network at work, and I’m doing some eval on the new framework between work builds.

  30. ASPInsiders says:

    Hey, we released Visual Studio 2010 Beta 1. JasonZ has a great post with piles of details and a metric

  31. Mike says:

    Yikes! Just loading the VS2010 IDE and an empty console app project takes ~200 MB of RAM vs. 50 MB in VS2008! I remember not so long ago when my entire hard-drive was 200 MB. What the heck are you using all that memory for?!

  32. It’s official: Visual Studio 2010 Beta1 has shipped! Check out this page for the official product information

  33. Stas – VS 2010 Beta opens new tabs to the left of currently opened ones as it is in VS 2008 and hidden tab also jumps to the left corner when you select it.

  34. Visual Studio 2010 (and .Net Framework 4.0) Beta 1