(as of Jan 08,2023 06:02:56 UTC – Details)
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 interactionsFix programs that are always too slow, and those that sometimes lag for no apparent reasonDesign useful observability, logging, and time-stamping capabilities into your codeReason more effectively about performance data to see why reality differs from expectationsIdentify problems such as excess execution, slow instruction execution, waiting for resources, and software locksUnderstanding 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.
From the Publisher
“Sites and KUtrace met my 33-year-old one-second challenge.”
Donald Knuth’s praise for Richard Sites’ Stanford Seminar “Making the Invisible Visible: Observing Complex Software Dynamics” and in reference to the low-overhead open-source software tool, KUtrace.
What is KUtrace?
KUtrace (Kernal-User Trace) is a Linux-based software facility that captures and timestamps every transition between user-mode and kernel-mode execution—every system call and return, interrupt and return, trap and return, and context switch. The CPU overhead is under 0.5% when doing 200,000 events per second per CPU core, so it is about 10x faster than a tool such as ftrace. Recording is into a pre-reserved kernel trace buffer of several megabytes.
Understanding Software Dynamics teaches you how to build the low-overhead KUtrace tool to record for any server what kernel or user code is executing on each CPU core every nanosecond—all programs, all operating system code, all interrupt handling, all idle loops, etc.
Publisher : Addison-Wesley Professional; 1st edition (December 10, 2021)
Language : English
Paperback : 464 pages
ISBN-10 : 0137589735
ISBN-13 : 978-0137589739
Item Weight : 1.94 pounds
Dimensions : 7 x 1.15 x 9.1 inches