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…


Case Study: Parallelism and Memory Usage, VS2010 Tools to the Rescue!

Hazim Shafi has written a very relevant case study illustrating how significantly memory usage patterns can affect speedups of parallel applications.  Have you ever parallelized an application only to find marginal (or no) speedup?  Perhaps this entry will explain why. 


GC Performance Patterns

Our “Rogues Gallery” is a collection of common, visual patterns exhibiting poorly-behaved multithreaded applications. In this post, I’ll introduce a new pattern: too much pressure on the garbage collector (GC). When an application creates too many objects, the GC will have to run often, resulting in poor application performance. Because the GC is executing in-process,…


Green Isn’t Always Good

One reason to use the Concurrency Visualizer is to maximally utilize system resources. To aid in this effort, it displays the execution of the program as green segments in its timeline. However, the Visualizer does not distinguish between the user’s work and any other work in the process, so seeing a lot of green doesn’t…