Laurence Tratt: Four Kinds of Optimisation
Premature optimisation might be the root of all evil, but overdue optimisation is the root of all frustration. No matter how fast hardware becomes, we find it easy to write programs which run too slow. Often this is not immediately apparent. Users can go for years without considering a program’s performance to be an issue before it suddenly becomes so — often in the space of a single working day. I have devoted more of my life to optimisation than I care to think about, and that experience has led me to make two observations: You will not be surprised to learn that I think both forms of optimism misplaced. Partly this is because, as hardware and software have become more sophisticated, it has become harder to understand their effects on performance. But, perhaps more fundamentally, we tend to overestimate how much we know about the software we’re working on. We overemphasise the parts of the system we’ve personally worked on, particularly those we’ve most recently worked on. We downpla
Laurence Tratt: Four Kinds of Optimisation Home > Blog ≡ Home > Blog email Bluesky Mastodon Twitter Bluesky Mastodon X Four Kinds of Optimisation RSS feed: whole site or just the blog Recent posts Local Reasoning for Global Properties Test-case Reducers Are Underappreciated Debugging Tools Retrofitting JIT Compilers into C Interpreters PLISS 2026 Upcoming Talk in London Async and Finaliser Deadlocks What Context Can Bring to Terminal Mouse Clicks Why Firsts Matter LLM Inflation Comparing the Glove80 and Maltron keyboards Blog archive Premature optimisation might be the root of all evil, but ov
related reading
- Making Deep Learning go Brrrr From First Principleshorace.io
- There's no reason for software to be slow anymoredanluu.com
- abseil / Performance Hintsabseil.io
- There's no reason for software to be slow anymoredanluu.com
- Everything I know about good system designseangoedecke.com
- Paul Buchheit: Optimizing everything: some details matter a lot, most don'tpaulbuchheit.blogspot.com
- Things unlearnedscattered-thoughts.net
- Effortless Performance Improvements in C++ | Julien Jorge's Personal Websitejulien.jorge.st
- A Bunch of Programming Advice I'd Give To Myself 15 Years Ago | Marcus' Blogmbuffett.com
- Laurence Tratt: Which Parsing Approach?tratt.net
- The compiler will optimize that away | RoyalSlothblog.royalsloth.eu
- The Curse of Knowing How, or; Fixing Everything | Blognotashelf.dev