Practical Performance Improving the efficiency of .NET code is written by MVP Jean-Philippe Gouigoux.

About the Author:
JP Gouigoux is a MCTS/MCPD Enterprise Architect, and MVP “Connected System Developer,” with an Engineering degree in Mechanical Systems from the Université de Technologie de Compiègne (France) and a Master of Science in Advanced Automation and Design from Cranfield University (UK). JP works as a software architect, and is a board member at MGDIS, an innovative software company based in Vannes (France). His role includes responsibility for platform architecture for a customer base of ~850, as well as R&D, internal and external training, and expertise in .NET.

You can read more on his blog here.

Chapter 1: Profiling Principles: :- Chapter 1 discusses the ideas and principles behind profiling your application and talks about goal setting and making measurable improvements, with real world examples.

Chapter 2: Profiling an Asp.Net Application :- Chapter 2 goes covers the unpredictability with garbage collection, how .net helps us, memory leaks, disk usage, network bandwidth and more.

Chapter 3: Sample Application :- Covers how to set up the example application which is a very bad example of how to write an application which is perfect for pointing out mistakes made and how to go about recognising them and then fixing them.

Chapter 4: Profilers :- This chapter covers how to use the profiler of choice and covers Ants Performance Profiler, JetBrains dotTrace performance, Eqatec Profiler as well as Open Source profilers.

Chapter 5: Profiling the Sample Application – Client Side:- This chapter covers some scenarios where we are shown how to
profile the application and study the output, we identify the slow parts of the application aka bottlenecks.

Chapter 6: Profiling the Sample Application – Server Side :- This chapter covers profiling the server-side, the service layer basically and in the sample application layer its a web service. It covers memory profiling, analysing the results and working out where the bottlenecks are occurring.

Chapter 7: Beyond Profling :- This Chapter covers performance analysis without using profilers including verbose logging, duplicate sql calls and even over architecting an application.

Chapter 8: Conclusion :- The last chapter reminds us that everything can be a performance problem, reminds us of the root causes of errors as well as the important part profilers lay in improving application performance.

My review is quite brief but the books covers a lot of ground, its well written , very detailed and with the sample application the structure of the chapters make sense. If your interested in learning more about profiling an application to improve its performance then this book is for you.