As I’m doing some work for the NPanday Visual Studio Addin, I bugs me even more that my Visual Studio 2010 currently needs about 40 seconds to start.
Actually I do not wonder at all, as I installed every single extension I ever found interesting. But, should I now disable them all, or rather find out which one takes the most time?
I did the latter.
After reading Did you know… There’s a way to have Visual Studio log its activity for troubleshooting? – #366 via (visual studio – VS2010 loads slowly. Can I profile extensions’ respective startup time? – Stack Overflow)
There it says, that if you start VS using devenv /Log, it will log it’s acitivity to %AppData%\Roaming\Microsoft\VisualStudio\10.0\ActivityLog.xml (for VS 2010). And it even comes with an XML that provides some output:
New XSL with Profiling Capabilities
So I tweaked the XSL to be a little bit more “profiling-friendly”. It will now:
- Tell me how long it took load each package
- Give me a visual indicator each 1 second (configurable)
- Mark each “End package load” line red, that exceeds a certain configurable threshold (default 500 ms).
- Mark each normal line read, if it exceeds the configured threshold.
Hotspots
Download and use with GIT
- Open Commandwindow in %AppData%\Roaming\Microsoft\VisualStudio\10.0
- Run git clone https://github.com/lcorneliussen/ActivityLogProfiler
- Start Visual Studio with ‘/Log’ switch
- Run deploy.cmd (will overwrite default ActivityLog.xsl in parent folder; Visual Studio will replace it after restart!)
- Open ActivityLog.xml in Internet Explorer
You can also download it manually (from here) and replace %AppData%\Roaming\Microsoft\VisualStudio\10.0\ActivityLog.xsl manually after each Visual Studio Run.
But with GIT you can easily get updates; and it makes it easier to submit patches, which I’ll be happy to apply.
Attention: Now you only have to repeat 3) and 4) to produce new logs, as Visual Studio will recreate both ActivityLog.xml and ActivityLog.xsl each time it is started with ‘/Log’.