An Expert Guide to Software Performance Optimization
From mobile and cloud apps to video games to driverless vehicle control,
more and more software is time-constrained: It must deliver reliable
results seamlessly, consistently, and virtually instantaneously. If it
doesn't, customers are unhappy--and sometimes lives are put at risk.
When complex software underperforms or fails, software engineers 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, time-constrained software dynamics,
improving reliability and troubleshooting challenging 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
solutions--not 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 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.