The Fallacy of Premature Optimization (2009)
From what I&#x27;ve seen, the problem of inefficiency most often manifests when the entire system of software is taken as a whole.<p>On a developer&#x27;s machine with local SSD, a small database and a really small working set, even large inefficiencies can become invisible because the computer is just that fast. However, add in some network latency between the application and the database, some unpredictability about the timing of requests, and a much larger data set so that you won&#x27;t hit data in memory 100% of the time, and suddenly code that was working fine grinds to a halt as it crosses a threshold where it can no longer process requests faster than they come in.<p>Unfortunately, with modern libraries helping &quot;abstract away&quot; underlying architecture like databases and the network, code like this is very easy to write without even realising that there might be a problem until it hits you in production.