The Garbage Collector Manages my Memory

Profiling a .NET application with the Concurrency Visualizer in Visual Studio 11Developer Preview has a less noisy Synchronization profile report than in Visual Studio 2010. The reason is because synchronizing withthe thread driving garbage collection is now categorized as Memory Management.Without this re-categorization, the Synchronization profile report can list outany method as having been blocked by…

2

Performance Improvements for the Concurrency Visualizer

Downloading Symbols As mentioned in http://blogs.msdn.com/b/visualizeparallel/archive/2011/09/19/how-can-visual-studio-11-developer-preview-visualize-the-behavior-of-a-multithreaded-application.aspx there are noticeable performance improvements to the Concurrency Visualizer in Visual Studio 11 Developer Preview. One source of the performance improvements is that it uses the fastest code, i.e., the fastest code is code that never runs. When the Concurrency Visualizer is opening the trace files generated by Event…


Profiling DirectX Activity

In Visual Studio 11 Developer Preview the Concurrency Visualizer highlights the way the traced process makes use of DirectX. To see how Internet Explorer 9 makes use of the GPU give the HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\Main\TabProcGrowth registry key a value of 0. Internet Explorer will then only use one process per window. Navigate Internet Explorer to a…

4

How Can Visual Studio 11 Developer Preview Visualize the Behavior of a Multithreaded Application

Now that you’ve had a day or two to work with the latest build of Visual Studio 11 Developer Preview and the .Net Framework 4.5 Developer Preview, I’m positive that you’re at the point where you would like to visualize the behavior of your multithreaded application. Remembering how you did that in Visual Studio 2010…


Concurrency Visualizer as a Microscope for Execution Dynamics

This is the picture that Concurrency Visualizer team used on the title page of internal specs. It actually reveals how most of us think about our product: not as a profiler (though you can get decent sample profile from it by clicking the green “Execution” category in the legend), and not even as a performance…


Tuning a Parallel Ray Tracer in F#

One of the samples that is included with the Parallel Programming Samples for .NET 4 is a simple Ray Tracer.  This ray tracer provides a nice visual way of seeing the benefits of .NET 4 parallelism features, as well as giving insights into the way work stealing happens under the hood.  The Problem This ray…

2

Adjusting Buffer Settings for Event Tracing for Windows (ETW)

We instrumented The Concurrency Visualizer within Visual Studio 2010’s profiler via Event Tracing for Windows (ETW), which depends on a number of buffers to cache data before writing it to disk. If The Concurrency Visualizer complains of lost kernel and / or user mode events during creation of a profile report, default settings for these…

8

Parallel Performance Case Study: Finding References to Parallel Extensions

Stephen Toub                                                                                                       Parallel Computing Platform Visual Studio 2010 is quite a large application, comprising not only the entire integrated development environment (IDE) and all of the tools that make it up, but also the underlying runtimes and frameworks on which it runs, including the .NET Framework 4. When logic in one of these constituent components…


Overview of the Parallel Dwarfs project on Codeplex

The Parallel Motifs, or Parallel Dwarfs as they are sometimes called, are a collection of algorithm families that are important to parallel computing as they are known to be compute bound. More computational cycles – if applied judiciously – will result in faster execution on a given data set for many algorithm instances from each…