Probably ok for academic purposes, but I definitely wouldn’t recommend for experienced professionals. In my opinion, this book has following pros and cons.

PROS: First 3 chapters are excellent. Very well explained. I think I filled my gaps in knowledge about floating points, instruction set (basics) and processor architecture.

CONS:

  • Chapter 5: IT industry has moved far ahead and the authors are still stuck on topics like “Loop Unrolling”. There are more realistic and advanced coding performance problems/scenario in IT industry that I think should have been addressed in this book. Growing distance between IT industry and CS academics really is making CS degrees useless.

  • Chapter 6: I think some of the very important topics about memory systems are missing, such as Cache Coherency, MESI protocol, Bus locks, LOCK prefix, CMPXCHG, XCHG etc. Temporal and spatial locality are overly covered (with fancy graphs and all.

  • Part III: I glanced over Part III and I think YOU are probably better off with any other Linux book.