English | 2021 | ISBN: 9780137589692 | 754 pages | True EPUB, MOBI | 52.8 MB
An Expert Guide to Software Performance Optimization
From mobile and cloud apps to video games to driverless vehicle control, more and more software is -constrained: It must deliver reliable results seamlessly, consistently, and virtually instantaneously.
If it doesn't, customers are unhappyand somes lives are put at risk. When complex software underperforms or fails, software eeers need to identify and address the root causes. This is difficult and, historically, few tools have been available to help.
In Understanding Software Dynamics, performance expert Richard L. Sites tackles the problem head on, offering expert methods and advanced tools for understanding complex, -constrained software dynamics, improving reliability and troubleshooting challeg performance problems.
Sites draws on several decades of experience pioneering software performance optimization, as well as extensive experience teaching graduate-level developers. He introduces principles and techniques for use in any environment, from embedded devices to datacenters, illuminating them with examples based on x86 or ARM processors running Linux and linked by Ethernet. He also guides readers through building and applying a powerful, new, extremely low-overhead open-source software tool, KUtrace, to precisely trace executions on every CPU core. Using insights gleaned from this tool, readers can apply nuanced solutionsnot merely brute-force techniques such as turning off caches or cores.
Measure and address issues associated with CPUs, memory, disk/SSD, networks, and their interactions
Fix programs that are always too slow, and those that somes lag for no apparent reason
Design useful observability, logging, and -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- system designers, and game developers, as well as advanced students.