
Programmers waste enormous amounts of time thinking about, or worrying about, the speed of noncritical parts of their programs, and these attempts at efficiency actually have a strong negative impact when debugging and maintenance are considered. We should forget about small efficiencies, say about 97% of the time: premature optimization is the root of all evil. Yet we should not pass up our opportunities in that critical 3%.
Variant in Knuth, "Structured Programming with Goto Statements" http://pplab.snu.ac.kr/courses/adv_pl05/papers/p261-knuth.pdf. Computing Surveys 6:4 (December 1974), pp. 261–301, §1.
Knuth refers to this as "Hoare's Dictum" 15 years later in "The Errors of Tex", Software—Practice & Experience 19:7 (July 1989), pp. 607–685. However, the attribution to C. A. R. Hoare is doubtful. http://shreevatsa.wordpress.com/2008/05/16/premature-optimization-is-the-root-of-all-evil/
All three of these papers are reprinted in Knuth, Literate Programming, 1992, Center for the Study of Language and Information ISBN 0937073806
Source: Computer Programming as an Art (1974), p. 671