規(guī)則1: 你沒法預(yù)測(cè)程序會(huì)將時(shí)間花費(fèi)在哪兒。瓶頸會(huì)發(fā)生在意想不到的地方,除非你已經(jīng)測(cè)試并定位了瓶頸,否則不要嘗試去猜測(cè)和優(yōu)化它。
規(guī)則2:測(cè)量。在測(cè)量之前不要為了提升速度優(yōu)化代碼。即使是在測(cè)量之后,也不要隨意優(yōu)化除非其中的一部分代碼已經(jīng)壓倒其余代碼。
規(guī)則3:當(dāng)n很小的時(shí)候好的代碼是很慢的,并且n通常都很小。好的算法都有一個(gè)很大的常量,除非你知道n很快就會(huì)變得很大,否則還是不要使用好的代碼(即使n變大了,也先使用 規(guī)則2)。
規(guī)則4:好的算法比簡單的算法更容易產(chǎn)生bug,并且它也更難去實(shí)現(xiàn)。盡可能使用簡單的算法和簡單的數(shù)據(jù)結(jié)構(gòu)。
規(guī)則5:數(shù)據(jù)主導(dǎo)。如果你選擇了正確的數(shù)據(jù)結(jié)構(gòu)并且組織得很好,算法幾乎總是不言而喻的。 數(shù)據(jù)結(jié)構(gòu),而不是算法,是編程的核心。
簡要:
派克的規(guī)則1和2重申了托尼·霍爾(Tony Hoare)著名的“過早優(yōu)化是萬惡之源”的格言。
肯·湯普森(Ken Thompson)將派克(Pike)的規(guī)則3和4改寫為:“如果有疑問,請(qǐng)使用暴力”。 規(guī)則3和4是KISS設(shè)計(jì)理念的實(shí)例。
規(guī)則5以前由弗雷德·布魯克斯在“人月神話”中說過。 規(guī)則5通常縮寫為“編寫使用智能對(duì)象的愚蠢代碼”。