or
Sign in to turn on 1-Click ordering.
More Buying Choices
Have one to sell? Sell yours here
Sorry, this item is not available in
Image not available for
Colour:
Image not available

 
Tell the Publisher!
I’d like to read this book on Kindle

Don't have a Kindle? Get your Kindle here, or download a FREE Kindle Reading App.

Practical Performance Profiling: Improving the Efficiency of .NET Code [Paperback]

Jean-Philippe Gouigoux
5.0 out of 5 stars  See all reviews (1 customer review)
RRP: £19.99
Price: £17.29 & this item Delivered FREE in the UK with Super Saver Delivery. See details and conditions
You Save: £2.70 (14%)
o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o
Only 1 left in stock (more on the way).
Dispatched from and sold by Amazon. Gift-wrap available.
Want delivery by Saturday, 25 May? Choose Express delivery at checkout. See Details
Amazon.co.uk Trade-In Store
Did you know you can trade in your old books for an Amazon.co.uk Gift Card to spend on the things you want? Visit the Books Trade-In Store for more details. Learn more.

Book Description

9 Mar 2012 1906434824 978-1906434823
In Practical Performance Profiling, Jean-Philippe Gouigoux provides both the theory and practical skills necessary to analyze and improve the performance of .NET code. By focusing on the 20% of code defects that account for 80% of performance loss, Jean-Philippe Gouigoux guides the reader through using a profiler and explains how to identify and correct performance bottlenecks. This book is for all developers who wish to boost the performance of their .NET code without having to embark on the steep slopes of tuning. Jean-Philippe Gouigoux draws on over ten years' experience as a software architect specializing in this area to demystify performance in .NET code. In Practical Performance Profiling he explains how the .NET platform manages memory and uses a sample application based on a real software package to demonstrate a wide range of performance slowdowns. With clear explanations of how to set up automated test scenarios, use a profiler, diagnose problems, identify solutions and validate the results, Practical Performance Profiling makes efficient code an achievable goal for all .NET developers.

Customers Who Viewed This Item Also Viewed


Product details

  • Paperback: 576 pages
  • Publisher: Simple Talk Publishing (9 Mar 2012)
  • Language: English
  • ISBN-10: 1906434824
  • ISBN-13: 978-1906434823
  • Product Dimensions: 19.1 x 2.9 x 23.5 cm
  • Average Customer Review: 5.0 out of 5 stars  See all reviews (1 customer review)
  • Amazon Bestsellers Rank: 1,676,077 in Books (See Top 100 in Books)

Sell a Digital Version of This Book in the Kindle Store

If you are a publisher or author and hold the digital rights to a book, you can sell a digital version of it in our Kindle Store. Learn more

Customer Reviews

4 star
0
3 star
0
2 star
0
1 star
0
5.0 out of 5 stars
5.0 out of 5 stars
Most Helpful Customer Reviews
5.0 out of 5 stars Professional Peformance Profiling .net style 21 Jun 2012
If your looking for a book that teaches you how to go about performance profiling a .net application, then this book is for you.

The book covers the principles, the gotchas, a sample application which is real world type scenario, and covers several of the different profiler applications around today - it also walks you through how to identify issues and what to look out for in general.

It teaches you best practices for performance monitoring and goes beyond using profiler in order to cover all reas of performance tuning and monitoring.

This book is well written, well layed out and flows naturally. A must read if you want to learn how to tune your .net application and make it perform a lot faster.

I recommend this mainly because of the real world scenario application and how your walked thorugh making it perform a whole lot faster.
Comment | 
Was this review helpful to you?
Most Helpful Customer Reviews on Amazon.com (beta)
Amazon.com: 2.5 out of 5 stars  2 reviews
2 of 3 people found the following review helpful
4.0 out of 5 stars A Performance Profiling Guide and More 27 Jun 2012
By J. Niland - Published on Amazon.com
My acquisition of this book came at a good time. I was beginning to learn how to best profile the latest version of a .NET library our team has been working on. The library is a core component in a high profile system. It is used tens of thousands of times per day; and very frequently within peak hours.

Why do we need to profile this component?

The main benefit we hoped to gain was a reduced average run time: with this type of component, any performance gain is a win. Additionally we have an opportunity to improve code quality: even though this is relatively mature code, mistakes can happen. Database queries can be optimised. Edge cases can be mitigated. Lastly improving performance improves usage efficiency of server resources, which is important in any organisation.

The use of a profiler is essential. It is impossible for a developer to manually detect all performance issues within a given component. There are numerous factors including interactions within and outside the component. These include database query performance, I/O latency, network latency, and application server limitations. Using a profiler provides us with a large amount of statistical data, as well as a visualisation mechanism with which to analyse the data.

Here's the thing about performance profilers, though. They are easy to run against your application and get a whole LOT of results. Most profilers provide a sort of inline guidance, i.e. showing you the lines of code which consume the most time. So some may think that this is all you need: find the worst performing lines of code, make them more efficient, done. But this is only part of the picture. What about making sure code is kept maintainable? Understanding what a profiler's results are really telling you is not immediately obvious to someone who is inexperienced, and the analysis and correction are the most important (and fun) parts of the exercise.

You also need a defined strategy when profiling. In other words, you need a way to prioritise the changes, and a way to measure the improvement you make.

So this is why a good book on the topic is very useful. Yes, there are thousands of blog posts available on this topic, but there is something to be said for the conciseness and completeness achieved in a book written by a competent author.

At first look, I could see this book is a very thorough exploration of .NET performance profiling - weighing in at 551 pages!

I appreciated the first chapter, which maps out generic profiling principles and guidelines, regardless of language/profiling tool. As mentioned, if you don't have a strategy before you start profiling, you will waste time just diving into the profiler results and trying to fix the first issue you see. Likewise, chapter 2 provides low level details regarding the effect of design decisions and system limitations on performance. This is brilliant if you have done a first pass of improvements and wish to further boost your application's performance.

Chapter 4 assesses three leading profiling tools. Of course, the ANTS Performance Profiler is included, as well as JetBrains dotTrace, and Eqatec Profiler. This section will quickly become out of date, however it is still useful, since you can use the criteria listed to assess future versions of tools, and other tools.

Where this book really helped us was in the demonstration of how to profile the sample application, PROFI, in chapters 5 and 6. Note: the code is in C#. This is the most efficient way to learn how to profile and analyse results. The app is a good choice because it comprises a client/server architecture and makes use of web services. This is a common scenario, so should benefit most readers.

The author takes you through the entire process from setting up the application and profiler to iterating through analysis and optimisation attempts. He includes some good advice on strategy - namely, don't just immediately work on the hotspots recommended by the profiler - prioritise based on real-world performance gain. In other words, optimise the most used parts of the application, not necessarily the worst performing. These two chapters contains many examples of code issues accompanied by analysis and rectification, and are the best parts of the book. It even includes details about how to run an automated load test on the server while profiling, and how to analyse the results.

Chapter 7: Beyond Profiling was very interesting because it delves into actual vs perceived performance. In other words, how responsive does the application performance "feel" to the user, regardless of actual duration to complete workloads. These days, with so many distributed systems providing data and processing, asynchronous operations are essential. I thought this chapter was useful in covering several ways to improve perceived performance.

Overall, as hoped, this book provides a clear method for profiling .NET applications with a lot of practical examples. It is also a very in-depth book, with a lot of time spent explaining many aspects of performance profiling .NET. As such, it will definitely suit a reader who wants to have a very deep understanding of the topic. If you are in a hurry and need something more concise then I would suggest focussing on chapters 1, 5, 6, and 8 (the checklist is very handy as a fast way to remove common performance issues) and read the remaining chapters when you have time. They are well worth it.
1.0 out of 5 stars Of very limited use 23 Jan 2013
By Brian Rasmussen - Published on Amazon.com
I received a free copy of this book at a conference and as I do quite a bit of performance work, I was very interested in learning new tricks. Unfortunately the number of errors and omissions in the current edition of this book are alarming. Just to name a few:

- The author argues that as long as response times are below 3 seconds, everything is fine. Imagine a text editor with a 3 sec delay on every keystroke or a game running at 1/3 FPS. Clearly there are scenarios where this is not good enough.

- The author recommends doing all performance measurements on debug builds. Debug builds aren't optimized, so this doesn't make any sense.

- A lot of time is spent talking about inlining at the IL level and all the code samples are clearly from debug builds. Inlining doesn't happen at the IL level and no inlining is done for debug builds. The text doesn't make it very clear that the IL actually never executes as is. The fact that IL is compiled to native code is not really discussed.

- The GC is described as completely unpredictable whereas in fact the overall behavior is actually well documented. Several incorrect statements are made about the GC as well, e.g. the author claims that the GC will spin up a new (low priority) thread to do a collect. Spinning up a new thread can be orders of magnitude more expensive than doing a gen0 or gen1 collect, so doing so would be a really bad idea.

- Despite the recent publication date, the book doesn't cover how async and parallel code can be used to improve performance.

- The section on how Windows handles memory is completely wrong. The author seems to believe that applications allocate RAM directly. There's no discussion of the OS memory manager. The concept of address space isn't even mentioned.

FWIW I have forwarded a list of comments to the publisher and I can only hope that future revisions of the book will be more accurate. In the meantime I recommend getting Pro .NET Performance: Optimize Your C# Applications (Professional Apress) instead.
Were these reviews helpful?   Let us know
Search Customer Reviews
Only search this product's reviews

Customer Discussions

This product's forum
Discussion Replies Latest Post
No discussions yet

Ask questions, Share opinions, Gain insight
Start a new discussion
Topic:
First post:
Prompts for sign-in
 

Search Customer Discussions
Search all Amazon discussions
   


Listmania!

Create a Listmania! list

Look for similar items by category


Feedback


Amazon.co.uk Privacy Statement Amazon.co.uk Delivery Information Amazon.co.uk Returns & Exchanges