Understanding Software Dynamics: Addison-Wesley Professional Computing Series
Autor Richard Sitesen Limba Engleză Paperback – 22 feb 2022
- Measure and address issues associated with CPUs, memory, disk/SSD, networks, and their interactions
- Fix programs that are always too slow, and those that sometimes lag for no apparent reason
- Design useful observability, logging, and time-stamping capabilities into your code
- Reason more effectively about performance data to see why reality differs from expectations
- Identify problems such as excess execution, slow instruction execution, waiting for resources, and software locks
Understanding Software Dynamics will be valuable to experienced software professionals, including application and OS developers, hardware and system architects, real-time system designers, and game developers, as well as advanced students. Register your book for convenient access to downloads, updates, and/or corrections as they become available. See inside book for details.
Preț: 273.55 lei
Preț vechi: 341.93 lei
-20% Nou
Puncte Express: 410
Preț estimativ în valută:
52.35€ • 55.23$ • 43.63£
52.35€ • 55.23$ • 43.63£
Carte disponibilă
Livrare economică 12-26 decembrie
Livrare express 27 noiembrie-03 decembrie pentru 45.51 lei
Preluare comenzi: 021 569.72.76
Specificații
ISBN-13: 9780137589739
ISBN-10: 0137589735
Pagini: 464
Dimensiuni: 174 x 231 x 25 mm
Greutate: 0.84 kg
Editura: Pearson Education (US)
Seria Addison-Wesley Professional Computing Series
ISBN-10: 0137589735
Pagini: 464
Dimensiuni: 174 x 231 x 25 mm
Greutate: 0.84 kg
Editura: Pearson Education (US)
Seria Addison-Wesley Professional Computing Series
Notă biografică
Richard L. Sites wrote his first computer program in 1959 and has spent most of his career at the boundary between hardware and software, with a particular interest in CPU/software performance interactions. His past work includes VAX microcode, DEC Alpha co-architect, and inventing the performance counters found in nearly all processors today. He has done low-overhead microcode and software tracing at DEC, Adobe, Google, and Tesla. Dr. Sites earned his PhD at Stanford in 1974; he holds 66 patents and is a member of the US National Academy of Engineering.
Cuprins
Foreword xix
Preface xxi
Acknowledgments xxv
About the Author xxvii
Part I: Measurement 1
Chapter 1: My Program Is Too Slow 3
Chapter 2: Measuring CPUs 15
Chapter 3: Measuring Memory 31
Chapter 4: CPU and Memory Interaction 49
Chapter 5: Measuring Disk/SSD 61
Chapter 6: Measuring Networks 85
Chapter 7: Disk and Network Database Interaction 111
Part II: Observation 131
Chapter 8: Logging 133
Chapter 9: Aggregate Measures 141
Chapter 10: Dashboards 157
Chapter 11: Other Existing Tools 167
Chapter 12: Traces 193
Chapter 13: Observation Tool Design Principles 209
Part III: Kernel-User Trace 217
Chapter 14: KUtrace: Goals, Design, Implementation 219
Chapter 15: KUtrace: Linux Kernel Patches 227
Chapter 16: KUtrace: Linux Loadable Module 239
Chapter 17: KUtrace: User-Mode Runtime Control 245
Chapter 18: KUtrace: Postprocessing 249
Chapter 19: KUtrace: Display of Software Dynamics 257
Part IV: Reasoning 267
Chapter 20: What to Look For 269
Chapter 21: Executing Too Much 271
Chapter 22: Executing Slowly 279
Chapter 23: Waiting for CPU 289
Chapter 24: Waiting for Memory 299
Chapter 25: Waiting for Disk 307
Chapter 26: Waiting for Network 319
Chapter 27: Waiting for Locks 337
Chapter 28: Waiting for Time 357
Chapter 29: Waiting for Queues 361
Chapter 30: Recap 383
Appendix A: Sample Servers 387
Appendix B: Trace Entries 391
Glossary 397
References 405
Index 415
Preface xxi
Acknowledgments xxv
About the Author xxvii
Part I: Measurement 1
Chapter 1: My Program Is Too Slow 3
Chapter 2: Measuring CPUs 15
Chapter 3: Measuring Memory 31
Chapter 4: CPU and Memory Interaction 49
Chapter 5: Measuring Disk/SSD 61
Chapter 6: Measuring Networks 85
Chapter 7: Disk and Network Database Interaction 111
Part II: Observation 131
Chapter 8: Logging 133
Chapter 9: Aggregate Measures 141
Chapter 10: Dashboards 157
Chapter 11: Other Existing Tools 167
Chapter 12: Traces 193
Chapter 13: Observation Tool Design Principles 209
Part III: Kernel-User Trace 217
Chapter 14: KUtrace: Goals, Design, Implementation 219
Chapter 15: KUtrace: Linux Kernel Patches 227
Chapter 16: KUtrace: Linux Loadable Module 239
Chapter 17: KUtrace: User-Mode Runtime Control 245
Chapter 18: KUtrace: Postprocessing 249
Chapter 19: KUtrace: Display of Software Dynamics 257
Part IV: Reasoning 267
Chapter 20: What to Look For 269
Chapter 21: Executing Too Much 271
Chapter 22: Executing Slowly 279
Chapter 23: Waiting for CPU 289
Chapter 24: Waiting for Memory 299
Chapter 25: Waiting for Disk 307
Chapter 26: Waiting for Network 319
Chapter 27: Waiting for Locks 337
Chapter 28: Waiting for Time 357
Chapter 29: Waiting for Queues 361
Chapter 30: Recap 383
Appendix A: Sample Servers 387
Appendix B: Trace Entries 391
Glossary 397
References 405
Index 415