Lessons learned after 55 years spent living at the intersection of hardware and software.
Software has rarely demonstrated the same gain of performance as hardware. Understanding the performance of complex software is difficult. “Without a good picture of reality, programmers are reduced to guessing and trying things to reduce long delays and improve performance,” declares the author. “This book is about not guessing, but knowing.”
The author has worked with giants such as Frances Allen, Fred Brooks, John Cocke, and Don Knuth and has co-designed the DEC industry, worked on Adobe Photoshop and improved the performance of Google services like Gmail. It’s one of these rare books that result from a unique experience of more than five decades at the intersection of hardware and software. For sure one of the most important programming books published in the last decade. For a limited audience…
You will learn what happens when you run instructions on a CPU that read and write from memory, disks or the network, from the lowest viewpoint, and most importantly, how to reason when facing a problem affecting the long tail latency (= the few abnormal slow requests) using common commands, logging, profiling, and tracing. Examples are written in C or C++ and running on Linux. Not all code examples are included in the text and must be downloaded, which sometimes makes comprehension difficult.
This book is a great complement to Systems Performance by Brendan Gregg. It’s (maybe) less practical but (maybe) more timeless as more focused on principles than the tools at hand. A great book for curious developers and an indispensable resource for performance engineers.