Chapter 10. Parallel Testing and Tuning


  • Preparing parallel tests

  • Working with Visual Studio 2010 performance profiling features

  • Measuring and visualizing concurrency

  • Identifying common parallel performance problems

  • Detecting serialized execution problems

  • Identifying diverse lock contention scenarios

  • Working with concurrent garbage-collection mechanisms

This chapter is about the new profiling features introduced in Visual Studio 2010 Premium and Ultimate editions. In this chapter, you will learn to detect common problems related to parallelized code with .NET Framework 4 by using these new profiling features. A profiling session provides you with valuable feedback to optimize your code. The chapter explains the different techniques used to profile parallelized code, and teaches you how to refactor an existing application according to the results of each profiling session.


When you add parallelism to an existing serial application or create a new parallelized algorithm from scratch, you must run the necessary tests to make sure that your application provides the following:

  • Correctness—The parallelized application's execution should always lead to the correct result. Chapter 1, "Task-Based Programming," introduced the importance of correctness when different pieces of code run with a concurrent code.

  • Desired speedup—The parallelized application should run faster than its serial counterpart on certain hardware capable of running code with a real ...

Get Professional Parallel Programming with C#: Master Parallel Extensions With .NET 4 now with O’Reilly online learning.

O’Reilly members experience live online training, plus books, videos, and digital content from 200+ publishers.