July 8th, 2024

Understanding Software Dynamics [book review]

The book "Understanding Software Dynamics" by Richard L. Sites, Addison-Wesley 2022, explores software performance analysis, emphasizing measurement techniques, KUTrace toolchain design, and practical performance analysis examples. Sites' approach benefits programmers, SREs, and system designers, offering insights for optimizing software services.

Read original articleLink Icon
Understanding Software Dynamics [book review]

The book "Understanding Software Dynamics" by Richard L. Sites, published by Addison-Wesley in 2022, delves into the intricate details of software performance analysis and optimization. Sites emphasizes the importance of measuring and observing various components of computer systems to uncover causes of long tail-latencies. The book is structured into four parts, covering topics such as measurement techniques, logging best practices, the design of KUTrace toolchain, and practical examples of using KUTrace for performance analysis. Sites' approach caters not only to programmers but also to SREs, operating systems designers, and hardware designers. The book provides valuable insights into improving software performance by accurately measuring and analyzing system behavior. With a focus on practicality and efficiency, Sites offers guidance on optimizing software services and understanding system intricacies. The book's content, based on real-world experiences and practical examples, is beneficial for graduate students, professional programmers, and anyone seeking a deeper understanding of software systems.

Link Icon 3 comments
By @pclmulqdq - 5 months
I read through this book last year, and it was a very good book. I loved the first half, and it hits on something that I tell other engineers about performance, which is that while your performance tool will tell you the truth, it will tell you the truth about a very narrow question. That means that you should be using it as a hypothesis testing tool, which means developing the hypothesis first based on an understanding of how the computer works. I'm pretty sure it's the first half, on how to think about software to generate these hypotheses, that sells the book.

However, the last third/half lost me. It primarily discusses (and advertises) the usage of one tracing tool that the author built. All performance tools, particularly the tracing tools which tend to be very heavy, have strengths and weaknesses, and you are going to need to mix your tools if you want to really understand things.

It's well worth the money and the time for the first half of the book, though.

By @eatonphil - 5 months
A gang of us are reading through this book right now and with fortune, Dick Sites has joined along too. It's quite an interesting book and quite challenging too. I love the performance archaeology Sites has done and also like the emphasis on 1) understanding his stated five fundamental resources (disk, network, cpu, memory, and software critical sections) and 2) how profiling (with hardware performance counters) can be cheap and effective but will only help you out with average performance and not p99 behavior. For that you need tracing.

We're halfway through the book so my takeaways my differ by the end. But it's possibly the most densely packed book I've read. Will definitely require future rereading.

By @CalChris - 5 months
TL;DR? Well his article Benchmarking "Hello, World!" develops a lot of the ideas which show up in his book.

https://queue.acm.org/detail.cfm?id=3291278