Chapter 29. A Game
There are only two ways to improve the response time of a computer program: (1) reduce a profile component’s event count or (2) reduce a profile component’s mean duration per event. It’s true. An interesting game to fortify your confidence about it is to recast your old performance improvement stories into this new “quantity or price” way of thinking.
To play the game, you describe a performance fix you’ve implemented or heard about, and then the class explains the differences you’d have seen in the before and after profiles of the symptoms you relieved. Like this:
Phyllis’s report sped up when I balanced her files across more disk drives.
Spreading files across more drives probably reduced the I/O rate to each drive, which would have reduced the duration that each read or write request spent queueing for service. So after the change, her program probably had the same number of read and write calls as before, but the mean duration per call was probably smaller.
Here are some others for you to practice on. Can you explain, in terms of event counts and durations, how each of these fixes would have made a program go faster?
-
“We removed another program’s lock on the sales order table.”
-
“We installed faster CPUs.”
-
“We replaced a heapsort with a quicksort.”
-
“We indexed a database table.”
-
“We parallelized the part of the code that works on eight independent tables.”
-
“We allocated more memory to the database buffer cache.”
Usually when I play this game ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access