That would work if most applications spent all their time in a few hot spots. But, contrary to popular wisdom, that&#x27;s usually not the case. Most applications have flat profiles (to steal a quote from DannyBee—but it matches my experience as well). They have flat profiles because people have spent a lot of time optimizing them. In this context—which is the norm—eliminating optimizations to save compile time and deferring optimization to a few &quot;hot spots&quot; has the effect of turning off optimization for the whole program.<p>It&#x27;s common to write off compiler optimizations as unimportant, because they&#x27;re invisible and people don&#x27;t see them. They&#x27;re also complex, which makes people predisposed to get rid of them in the name of &quot;simplicity&quot;. But, for better or for worse, optimizing compilers are necessary complexity.<p>Optimizing compilers are not ubiquitous because compiler engineers just like to play with technology. They&#x27;re ubiquitous because you need them.