Skip to content
HomeVideosBooks
AllTopicsTrends
BlogsPodcasts
HistoryListsWatch laterLiked videosFollowing

The videos, books, blogs and podcasts Hacker News keeps recommending, all in one place.

VideosBooksBlogsPodcastsAboutPrivacySettings

Data from Hacker News, HackerTube, HackerBooks, HackerBlogs and Open Library. Credits · Not affiliated with Y Combinator.

HomeVideosBooksBlogsPodcasts
Ctrl K
    Understanding Software DynamicsRichard Sites

    Understanding Software Dynamics

    Richard Sites · 2021

    World-renowned software performance expert Richard Sites offers expert methods and advanced tools for understanding complex time-constrained software dynamics, improving software reliability, and troubleshooting challenging performance problems. He addresses CPU, memory, disk, network, and more, helping students fix programs that are always too slow, or work well at times but inexplicably slow down at other times. Sites draws on several decades of experience pioneering software performance optimization, and extensive experience teaching developers at the graduate level. He introduces principles and techniques which can be used in any environment, from embedded devices to datacenters, illuminating them with examples based on x86 or ARM processors running Linux and linked by Ethernet. Sites also guides students through building and applying a powerful new extremely-low-overhead open source software tool, KUtrace, to trace exactly what is executing on every CPU core. Using insights gleaned from this tool, students can apply nuanced approaches to performance enhancement--not merely brute-force techniques such as turning off caches or cores. "In the Preface, Sites mentions that he got many helpful suggestions while teaching graduate-level courses after retiring from Google... I think that any senior CS student... can benefit by reading this book.

    Programming
    Open LibraryAmazon
    Stats for nerds
    6recommend
    8mentions
    8people
    2021–2025years
    75% recommend25% neutral

    Mentions per year

    20212022202320242025

    What Hacker News says

    1. checker659Jan 2025
      I'm also interested to know.

      My contribution to the discussion:

      Something you could use to debug issues / detect weak points is a tracer.

      This book by Dick Sites (Early Google Engineer) goes over the design and use of such a tracer: Understanding Software Dynamics (review: https://www.usenix.org/publications/loginonline/understandin...)

      thread
    2. li4ickJul 2024
      His book, "Understanding Software Dynamics", is one of the best technical books I've ever read. Top 3 for me.
      thread
    3. crissaegrimJul 2024
      I had the pleasure to work with Dick on getting KUtrace to work on Android devices last year. It was a great experience to work with one of the greats in systems performance. He was a wealth of information regarding performance bottlenecks and optimizations.

      KUtrace is absolutely one of the most powerful tools I've used for deeply understanding performance bottlenecks (after isolating issues) such as poor scheduling behavior. I would highly recommend reading his book "Understanding Software Dynamics" [1] if you are interested in learning more about KUtrace or performance bottlenecks/optimizations in general. The book is quite dense and dives deep into the performance characteristics of many examples of the five fundamental resources (according to Dick): CPU, Memory, Disk/SSD, Network, and Software critical sections.

      [1]: https://www.oreilly.com/library/view/understanding-software-...

      thread
    4. aetimmesJun 2024
      Read through Understanding Software Dynamics by Richard Sites and work through the example problems in the book.

      He discusses exactly what you're describing (L1/2/3 cache hit rates, their performance implications, how compiler optimizations can fool us into thinking we have a good hit rate, etc).

      Also take a look into Intel VTune and Processor Tracing to understand how performance counters like Instructions per Cycle are calculated.

      thread
    5. lenkiteMar 2024
      The book Understanding Software Dynamics by Richard Sites is all about performance optimization

      https://www.amazon.in/Understanding-Software-Addison-Wesley-...

      thread
    6. drallisonDec 2021
      Understanding Software Dynamics (Addison-Wesley Professional Computing Series) 1st Edition by Richard L. Sites (https://www.amazon.com/Understanding-Software-Addison-Wesley...)

      This is a recent book and I have not completed reading it but I know already is it destined to become a classic. If you are serious about learning how to understand and improve code, this is the book for you. (Full disclosure: Dick is a long-standing friend and one of the brightest and insightful guys around.)

      Writing Efficient Programs (Prentice-Hall Software Series) 1st Edition by Jon Louis Bentley (https://www.amazon.com/Writing-Efficient-Programs-Prentice-H...)

      This book is out of print but I believe it's a better read that Jon's Programming Pearls books. C is a great (and permissive) programming language. Jon shows how the language can be exploited for gain performance. Evil but effective.

      Hacker's Delight 2nd Edition by Henry Warren (https://www.amazon.com/Hackers-Delight-2nd-Henry-Warren/dp/0...)

      The Hacker's Delight is exactly what Hank Warren intended--a collection of tricks and facts that programs can exploit. It's informative on many levels. It uses deep knowledge of how numbers (and other mathematical objects) work to compute useful information. And it shows how seemingly arcane information can be useful. For a programmer excited by the fabric of programs, it is a continual delight.

      The first edition has a clarity and compactness that I find appealing. The second edition has additional material. When you get through all of the Delights you can read Knuth Volume 4 which embeds more arcane and useful knowledge.

      thread

    Related

    Cover of Patterns of software
    2007–2026

    Patterns of software

    Richard P. Gabriel
    31 recommend · 70
    Cover of Dynamics of software development
    2009–2025

    Dynamics of software development

    McCarthy, Jim
    10 recommend · 18
    Cover of Design Patterns
    2007–2026

    Design Patterns

    Erich Gamma
    95 recommend · 491
    Cover of Programming from the Ground Up
    2009–2026

    Programming from the Ground Up

    Jonathan Bartlett
    36 recommend · 56
    Software FoundationsBenjamin C. Pierce
    2011–2026

    Software Foundations

    Benjamin C. Pierce
    58 recommend · 77
    Cover of Refactoring
    2007–2026

    Refactoring

    Martin Fowler
    94 recommend · 179
    Cover of The art of computer programming
    2007–2026

    The art of computer programming

    Donald Knuth
    336 recommend · 1,799
    The psychology of computer programmingGerald M. Weinberg
    2009–2026

    The psychology of computer programming

    Gerald M. Weinberg
    44 recommend · 122