DataCollection at the Global Level

If you are using the DataCollection API (either from native, by linking agains VSPerf.lib, or from managed, by importing Microsoft.VisualStudio.Profiler.dll), and wish to enable or disable collection at the global level, you must pass CurrentId for the elementId parameter:   using Microsoft.VisualStudio.Profiler;   [Not so interesting code here]     DataCollection.StartProfile(      ProfileLevel.Global,       DataCollection.CurrentId);   [Interesting…


Response Files

On the forums, someone was using the /INCLUDE option in VsInstr.exe.  It is possible to use multiple instances of this option to include different sets of functions.  For a big chunk of functions, you might want to use dozens of function specifications.  Who the heck wants to do all that typing?  You could make a…


Off-road Profiling Windows Services

I’ve just posted an article on the pitfalls of profiling services with the Visual Studio profiler.  It includes a sample service with a quick walkthrough.  Enjoy. Profiling Windows™ Services with the Visual Studio Profiler


Offroad Profiling: The Visual Studio Profiler and Windows™ Services

Introduction The Visual Studio Team System Profiler primarily addresses stand alone application scenarios.  However, more and more modern applications are built around a distributed architecture, and larger and larger portions of functionality are moving into remote services.  Of course, this is nothing new — multi-tier applications have been the norm for some time – but…


Limiting the Data Crunch from Trace Profiling

Typically, one can use the sampling profiler to nail down the hot spot in an application.  Having done that, what does one do when the sampling data doesn’t provide enough information?  The trace profiler can offer up more detail, particularly if the issue revolves around thread interaction.  However, if you profile a heavily CPU bound…