WHAT'S IN THIS CHAPTER?
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 ...