Appendix A. Latencies for Napkin Math Calculations

For designing and assessing optimizations on a different level, it’s useful to be able to approximate and ballpark latency numbers for basic operations we see in interactions with the computer.

It’s good to remember some of those numbers, but if you don’t, I prepared a small table with the approximate, rounded, average latencies in Table A-1. It is heavily inspired by Simon Eskildsen’s napkin-math repository, with a few modifications.

The repository was created in 2021. For CPU-based operations, those numbers are based on the server x86 CPU from the Xeon family. Note that things are still improving every year, however, most of the numbers are stable since 2005, due to limitations explained in “Hardware Is Getting Faster and Cheaper”. CPU-related latencies might be also different across various CPU architectures (e.g. ARM).

Finally, remember that those numbers are often not reproducible on a micro-scale (for example, for disk write or read latency). New PCs, servers, and laptop providers (e.g., Apple) with new versions of operating systems and drivers do a fantastic job with extensive disk caching. Combined with large RAM capacities, it takes some effort to reproduce SSD or HDD “slow” latency with a micro-benchmark reading a single or even multi-MB file. Furthermore, some devices have built-in hardware RAIDs that split your writes and reads to multiple disks to mitigate latency issues. In other words, more layers are involved in ...

Get Efficient Go now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.