Browse by Tags

Tagged Content List
  • Blog Post: Visualizing Concurrency on Production Systems

    As interesting as profiling applications on your development computer is, I’m sure you’ve wanted to see the behavior of applications when running in production systems. The ability to view remote traces with the Concurrency Visualizer first requires installing the Visual Studio 2010 profiler...
  • Blog Post: 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...
  • Blog Post: Where is my stack?

    In an earlier post I explained why you may get stacks that do not look like what you were expecting when you have FPO optimizations, but even without FPO enabled there are some other scenarios that can cause your application stacks to look somehow “unexpected” in the Concurrency Visualizer...
  • Blog Post: Mid-execution Profiling of a Multithreaded Process

    In this entry, I will describe how to capture a trace in the middle of a process’ execution for the Concurrency Visualizer, allowing you to visualize the multithreaded behavior of your application during that period of time.  This is accomplished by attaching to and detaching from the running process...
  • Blog Post: Call stack gymnastics: Why is function Foo missing from my call stack?

    Sometimes you expect to see a specific function on the stacks collected by the Concurrency Visualizer but to your surprise it is not there. To understand why this can sometimes happen, we have to start with some basic information: Event Tracing for Windows (ETW) is the system wide tracing mechanism shipped...
  • Blog Post: Instantly Expanding Long Callstacks in the Concurrency Visualizer Reports

    Did you notice that reports frequently show pretty long stacks? E.g. in the picture below it is 12 frames deep, but sometimes it can be a hundred… and very frequently you need the deepest one to see what is going on. Are you supposed to click on “+” hundred times? Happily, there is a shortcut – asterisk...
  • Blog Post: Using the Concurrency Visualizer to Analyze MPI Communication Overheads

    The Message Passing Interface (MPI) is a popular API for developing message-passing based parallel applications on clusters. Microsoft has a Windows HPC Server product that includes an implementation of MPI, among other things (visit http://www.microsoft.com/hpc) . In this post, I’d like to demonstrate...
  • Blog Post: Tuning a Parallel LINQ File Search Application

    This post explores the performance issues that arise when using PLINQ to parallelize queries, and illustrates how the Concurrency Visualizer in Visual Studio 2010 can be a valuable tool in identifying performance bottlenecks and making efficient and profitable parallelization choices. The subject of...
  • Blog Post: Which Visual Studio 2010 Profiling Option Should I Select?

    Ever wonder which of these profiling options to select?  Find out here . James Rapp - Parallel Computing Platform
  • Blog Post: Linking Visualization to Application Phases

    It is often necessary to divide many real-world applications into multiple distinct phases.  As a result, the search for performance problems can often be constrained to a particular phase of an application's execution.  One of the most effective ways to narrow focus onto a specific region...
  • Blog Post: 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...
  • Blog Post: Learning to Write in Parallel

    When I first join ed the Concurrency Visualizer team, I thought, “Wouldn’t it be cool to make an application that could write messages on the Threads view?” I wasn’t alone, many of us had thought about it. It turns out to be not so hard. James wrote about the threads view three weeks ago, so refresh...
  • Blog Post: 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...
  • Blog Post: Beginner's Guide to Profiling Parallel Apps Part IV

    Welcome to fourth and final installment of the "beginner's guide" series.  In my previous entry, I discussed the "Threads" view of the Concurrency Visualizer.  In this entry, I will discuss the "Cores" view. Using the same set of results as the previous entries...
  • Blog Post: Beginner's Guide to Profiling Parallel Apps Part III

    Hello and welcome to the third installment of the "beginner's guide" series.  While I discussed the "CPU Utilization" view last time, I will now discuss the "Threads" view in the profiler. Working with the same code as in my last post, I will now re-examine the performance...
  • Blog Post: Beginner's Guide to Profiling Parallel Apps Part II

    In my previous post, I described how to profile your multithreaded application using the Visual Studio Performance Wizard.  As I mentioned, the summary report presented after profiling yielded three options.  In this entry, I will discuss the "CPU Utilization" option.  After...
  • Blog Post: Beginner's Guide to Profiling Parallel Apps Part I

    Hello world!  This is the first of four "beginner's guide" installments.  Though individiuals more familiar with concurrency issues may find it easier to get started with our tools, my team and I are interested in making it easier for a broader range of developers to quickly get started...
Page 1 of 1 (17 items)