,

Understanding Software Dynamics

Paperback Engels 2022 9780137589739
Verwachte levertijd ongeveer 9 werkdagen

Samenvatting

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. While all the material in the first half of the book leads up to the use of KUTrace, the first two parts are worth reading on their own by anyone who wants to better understand the systems they are building and using."—Rick Farrow, ;login

Specificaties

ISBN13:9780137589739
Taal:Engels
Bindwijze:Paperback

Lezersrecensies

Wees de eerste die een lezersrecensie schrijft!

Inhoudsopgave

Foreword xix<br>Preface xxi<br>Acknowledgments xxv<br>About the Author xxvii <br> <br> Part I: Measurement 1 <br>Chapter 1: My Program Is Too Slow 3 <br>Chapter 2: Measuring CPUs 15 <br>Chapter 3: Measuring Memory 31 <br>Chapter 4: CPU and Memory Interaction 49 <br>Chapter 5: Measuring Disk/SSD 61 <br>Chapter 6: Measuring Networks 85 <br>Chapter 7: Disk and Network Database Interaction 111 <br> <br> Part II: Observation 131 <br>Chapter 8: Logging 133 <br>Chapter 9: Aggregate Measures 141 <br>Chapter 10: Dashboards 157 <br>Chapter 11: Other Existing Tools 167 <br>Chapter 12: Traces 193 <br>Chapter 13: Observation Tool Design Principles 209 <br> <br> Part III: Kernel-User Trace 217 <br>Chapter 14: KUtrace: Goals, Design, Implementation 219 <br>Chapter 15: KUtrace: Linux Kernel Patches 227 <br>Chapter 16: KUtrace: Linux Loadable Module 239 <br>Chapter 17: KUtrace: User-Mode Runtime Control 245 <br>Chapter 18: KUtrace: Postprocessing 249 <br>Chapter 19: KUtrace: Display of Software Dynamics 257 <br> <br> Part IV: Reasoning 267 <br>Chapter 20: What to Look For 269 <br>Chapter 21: Executing Too Much 271 <br>Chapter 22: Executing Slowly 279 <br>Chapter 23: Waiting for CPU 289 <br>Chapter 24: Waiting for Memory 299 <br>Chapter 25: Waiting for Disk 307 <br>Chapter 26: Waiting for Network 319 <br>Chapter 27: Waiting for Locks 337 <br>Chapter 28: Waiting for Time 357 <br>Chapter 29: Waiting for Queues 361 <br>Chapter 30: Recap 383 <br> <br>Appendix A: Sample Servers 387 <br>Appendix B: Trace Entries 391 <br> <br> Glossary 397<br>References 405<br>Index 415

Managementboek Top 100

Rubrieken

    Personen

      Trefwoorden

        Understanding Software Dynamics