Performance is a hot topic these days. Currently, you may see a big push in the .NET world towards reducing performance overhead as much as possible in critical areas like .NET Framework, ASP.NET stack, and others.
Pro .NET Performance is supposed to be a good source for this topic. Internal details of the CLR, a lot of advice about performance best practices etc. And the book serves this purpose. But not in a full degree.
I really wanted to love this book, but I just liked it.
There are few reasons for that.
The book is trying to accomplish more that it should. For instance, instead of focusing just on the CLR, .NET and C#, it tries to cover some other topics, like GPU programming (with no direct use cases from the managed code), algorithm optimization (way more general topic), Web performance (an entirely different world that deserves one or two separate books).
.NET itself is very complicated and I really want to dive deeply Just in this area. I want to learn more about JIT, I want to learn more about CLR internals, I want to learn more about performance tuning of my managed app. The book covers those topics but it just scratches the surface.
There are so many myths today that LINQ is bad, that GC is fast, that concurrent programming is easy, that value types will always help and many others. That’s why I would prefer to stay in this area instead of spreading the energy on other, important, but different topics like web programming.
Another aspect that I didn’t like related to a tone of the book. In many cases topics are covered in extreme details: lots of assembly code here and there, even in some places where a short description with plain English or a small diagram will suffice. On the other hand, some topics are described on the high level: concurrency and TPL is an example. In some other cases, the chapter just describes some tool like NGEN, MPGO or something else, will assembly listings but without any guidance or best practices. Should I care? Does it worth it? I don’t know. I want to hear advice from the expert, in this case, not just read some description.
The book is not perfect. As every one of us. But it is helpful. If you’re interested in high-performance managed application the book is for you. Yep, it barely scratches the surface in some areas and covers some internal stuff with a ridiculous amount of details.