Wednesday, May 11, 2011

Add-in Start-up Time in Visual Studio 2010

justcode-fastWhile I was in Dallas last week for a quick DNUG speaking tour, a good question came-up regarding the Telerik tools that extend Visual Studio: Should you expect them to add time to the Visual Studio loading time?

Clearly, different products integrate with Visual Studio in different ways (thus impacting the VS startup process differently), but we have invested focused energy making sure the Telerik tools do not significantly degrade the VS start-up (or runtime) process. As a result, the general answer to the question is that Telerik tools should not add more than a few seconds to VS start-up time.

But I decided a more specific answer was in order.

To more fully answer this question, I did a series of tests with my local copy of Visual Studio 2010 Ultimate to see how much different VS add-ins impacted the overall Visual Studio startup time.

Add-in Time Tests

The goal: understand how different add-ins installed on my machine impact the "baseline" Visual Studio start-up time. Since every computer configuration is going to impact the absolute values of a test like this, the most important thing to compare is the relative difference to the baseline. The baseline in this case is Visual Studio started in Safe Mode (devenv /safemode), which automatically disables any and every VS add-in.

MEASURING THE START-UP TIME
I tried a couple of different approaches for measurement. I wanted to use something precise that could take the measurements for me (like AppTimer), but no automatic solution could reliably determine when exactly Visual Studio was truly "loaded" and ready for action. So, a manual stopwatch was employed with precision dexterity to start the timer and run the devenv process simultaneously. (Multiple tests were conducted, too, to minimize error, of course.)

THE RAW TEST RESULTS
There is not much rhyme or reason to the add-ins that I measured (beyond the Q1 2011 Telerik tools) other than that the plug-ins were already running on my machine. So here are the results (times are rounded since millisecond precision here isn't that meaningful):

VS ADD-INS ENABLED Impact on Baseline Start-up Time
(in seconds)
Baseline (/safemode) -- (for the record, 1.8 sec)
No Plugins (w/o Start Page) +1 (with Start Page, +2)
Only JustMock -- (No measurable impact)
Only JustTrace --
Only JustCode +4
JustCode, JustMock, JustTrace +4
Only OpenAccess +1.5
JC,JM,JT,OA +5
NON-TELERIK ADD-INS  
Only BuildIncrementVersion -- (No measurable impact)
Only VisualGit +1
Only Chirpy --
Only .NET Reflector Pro +1
Only VMWare VMDebugger +10!

Out of curiosity (since I know many of you are), I decided to also test the latest versions of ReSharper and CodeRush/Refactor to see how they comparably impacted VS load time. Same test method. Results:

VS ADD-INS ENABLED Impact on Baseline Start-up Time
(in seconds)
Only ReSharper 5.1 +3.5*
Only CodeRush/Refactor 10.2.8 +3.5*

*These times need explanation. More on that below.

Analyzing the Start-up Test Results

There are few quick takeaways from these basic tests:

  • Many add-ins, including JustMock, JustTrace, Chripy, and BuildIncrementVersion have virtually no impact on the Visual Studio start-up time. As you might expect, though, these add-ins are doing very little to really integrate deeply into the VS IDE.
  • VMWare's VS add-in is a HUGE offender. It added over 10 seconds to raw startup time! I didn't realize this 'til my tests. You can bet this add-in will stay disabled from now on unless I need it!
  • JustCode only adds about 4 seconds to VS start time, which is roughly on par with similar VS productivity plug-ins.

I did observe that ReSharper and CodeRush seem to "lazy load," so while Visual Studio appears to open quickly, it remains unresponsive after opening while these plug-ins run through their loading routines. JustCode, meanwhile, fully loads during VS startup, so as soon as VS opens, it's ready to go. Ultimately, the add-ins all add roughly the same time to the VS start-up, just in different places. You can be sure Telerik will continue to invest heavily in optimizing the JustCode start-up routines so we can continue to set the new standard in Visual Studio productivity tools.

--

At the end of the day, I'm satisfied with these results. I don't launch instances of Visual Studio that often during a day (usually open and leave open), and an additional 4 or 5 seconds seems like a minimal start-up delay for all of the time JustCode, JustMock, and OpenAccess will save during development (especially since JustCode doesn't add crippling, time-sapping "lag" to Visual Studio like some add-ins). We'll keep innovating, though, and find new ways to make our impact event smaller.

In the meantime, if you're not seeing results like this, and your VS is taking a long time to load, look for other non-Telerik add-ins (VMWare?) or try "resetting" your VS by booting once in Safe Mode (this seems to work for me when VS load times get oddly slow over time). Hope this helps!

(And in case you missed it, be sure to check-out the top 10 ways JustCode makes Visual Studio better!)

Thursday, May 05, 2011

Join me at DevTeach 2011 in Montreal

DevTeach2011-125x125While the Canadian government is the biggest fan of me at border crossings, I will be making one trip to the Great White North this spring to speak at DevTeach 2011 in Montreal. This is an amazing community conference- 3 days, over 90 sessions, plus pre- and post-conference workshops. If you're in, around, or able to get to Montreal for this event, you definitely should. It's only XX, which is a bargain for this kind of training.

I will be presenting a session on ASP.NET MVC on Wednesday, so if you're a WebForms developer still trying to understand MVC and some of the different concepts it represents, don't miss this targeted talk. It's early, but it'll be worth it.

I'll also be hosting a "open discussion" on Tuesday during the lunch hour talking about "Silverlight, HTML5, and the Future of the Rich Web."  This will be a fun, interactive conversation about two very interesting technologies and a chance for you to actively share your opinions. The lunch conversation is sponsored by Telerik, so we'll be providing free ice cold beer! That should make the conversation more fun. Don't miss it and don't be late (first come, first served).

In fact, Telerik is a sponsor of the entire DevTeach event, so don't miss our other speakers (Joel Semeniuk, Phil Japikse) and our other lunch-hour bonus sessions (happening on Wednesday and Thursday, also with free beer). It should be a great time and it all starts on May 30th. See you in Montreal soon!

Wednesday, May 04, 2011

Dallas DNUG Speaking Tour This Week

I've trekked north from my home-base near Houston and I am in Dallas this week for a quick series of .NET User Group sessions. Three nights, three different groups, and three very different talks. Here's the schedule for the week:

  • Dallas XAML Users Group (Tuesday, May 3rd)
    "State of Silverlight + What's New in Silverlight 5"
  • North Dallas .NET Users Group (Wednesday, May 4th)
    "The Rich Standard: Getting Familiar with HTML5"
  • Dallas C# SIG (Thursday, May 5th)
    "Building a Testable Data Access Layer"
Obviously, the XAML talk is already in the history books, but you still have time to attend the fun HTML5 and useful testable DAL talks this week. All of the meetings occur at the local Improving Enterprises offices, and all seem to start around 6:00 PM. I've got some extra Telerik swag for each meeting, of course, so clear an evening and come join me and the rest of the Dallas .NET community for some fun this week.