11越5日,三年前的這一周蔑滓,阿姆達(dá)爾去世了郊酒,他是最偉大的計算機架構(gòu)師之一、阿姆達(dá)爾法則的提出者键袱、微軟FUD策略的提出者燎窘、“地獄常客”蹄咖。這一天褐健,吳軍老師在得到APP專欄發(fā)文介紹了阿姆達(dá)爾法則。
以下前半部分來自吳軍老師的文章澜汤,后半部分是我的思考蚜迅。
阿姆達(dá)爾法則是IT行業(yè)得以快速進(jìn)步的戰(zhàn)術(shù),與之相對的是摩爾定律俊抵,這是IT行業(yè)的戰(zhàn)略谁不。我們對后者都比較熟悉,但對前者卻很陌生徽诲,雖然我們或許在很多領(lǐng)域用過這一法則拍谐。
阿姆達(dá)爾在IBM期間設(shè)計了大型計算機“系統(tǒng)360”烛缔,這是歷史上最成功的大型機,沒有之一轩拨,它和隨后的變種今天仍然為藍(lán)色巨人帶來數(shù)十億美元的收入践瓷。
阿姆達(dá)爾在設(shè)計計算機系統(tǒng)時,充分認(rèn)識到計算機各部分的性能必須平衡匹配亡蓉,才能得到整體性能最佳的系統(tǒng)晕翠,他將這種思想用一個簡單的公式描述出來,請看下圖:
這就是阿姆達(dá)爾法則砍濒。在公式最左邊的大寫S淋肾,代表系統(tǒng)的最后性能提升或加速,右邊分母的小寫s代表系統(tǒng)內(nèi)某一項性能的提升爸邢,比如把內(nèi)存速度提高了2倍樊卓,右邊的s就是2倍,右邊的p代表這項性能被用到的比例或概率杠河,比如內(nèi)存的讀寫訪問占用了計算機程序運行的20%時間碌尔。
好了,在這樣假定的前提下券敌,如果你把內(nèi)存的速度翻一番唾戚,也就是s=2,那么整個計算機性能的提升是多少呢待诅?根據(jù)這個公式叹坦,是提升11%,這個好像還不錯卑雁。如果你把內(nèi)存提升100倍募书,整個計算機的速度提升12.47%,這個就不太有效了测蹲。
在每一次設(shè)計新的計算機產(chǎn)品時锐膜,都會有各種技術(shù)突破可供使用,但是考慮到成本因素和設(shè)計的復(fù)雜度弛房,都需要有所取舍,那么該引入哪些技術(shù)呢而柑?阿姆達(dá)爾法則是計算機行業(yè)做選擇的鐵律文捶。接著看下面這個例子:
假如說,內(nèi)存讀寫占用程序運行時間的20%媒咳,處理器占用60%粹排,現(xiàn)在有兩個技術(shù),一個可以將內(nèi)存讀寫速度提高5倍涩澡,另一個可以將處理器速度提高50%顽耳,受到成本和研發(fā)時間的限制,下一個版本該選用何種技術(shù)呢?表面看來射富,20%的5倍肯定比60%的50%要大得多膝迎,阿姆達(dá)爾法則給出的結(jié)論則恰恰相反,根據(jù)上面公式胰耗,內(nèi)存新技術(shù)只能讓整體性能提高20%限次,而處理器是25%。
接下來柴灯,假定一年后又要推出一個新系統(tǒng)卖漫,而內(nèi)存與處理器提升的性能與上次一樣,那這一次該選哪個技術(shù)呢赠群?很多人會說繼續(xù)提高處理器性能羊始,很遺憾,根據(jù)阿姆達(dá)爾法則查描,這一次該提升內(nèi)存性能了突委。請注意,這一次處理器所占用程序運行時間叹誉,也就是p鸯两,從之前的60%下降為50%,那么再提高處理器的油水就沒那么多了长豁。事實上钧唐,這一次提高處理器只能讓整體性能提高20%,而提高內(nèi)存則可以讓整體性能提升25%匠襟。
阿姆達(dá)爾法則是整個計算機領(lǐng)域的鐵律钝侠,不但在硬件產(chǎn)品設(shè)計、軟件開發(fā)與調(diào)試方面是原則酸舍,還可以作為研發(fā)投入的依據(jù)帅韧。也就是說如果當(dāng)前計算機某個部分陷入瓶頸拖了后腿,就必須集中精力與經(jīng)費進(jìn)行突破啃勉。這也解釋了為什么計算機領(lǐng)域的一些關(guān)鍵突破總是恰逢其時忽舟,比如2000年后CPU的發(fā)展放緩,因為太快了內(nèi)存和硬盤跟不上淮阐,2005年之后基于新的半導(dǎo)體技術(shù)叮阅,閃存的固態(tài)硬盤快速發(fā)展,容量擴(kuò)展成本降低泣特,這是因為磁質(zhì)硬盤成了計算機大型服務(wù)器的瓶頸浩姥。
與阿姆達(dá)爾法則相反的做法是,盡撿些容易改進(jìn)的地方改進(jìn)状您,比如某些工程主管做了一輩子存儲就永遠(yuǎn)強調(diào)存儲的重要性勒叠,熟悉處理器就強調(diào)處理器的重要性兜挨。這樣一來,沒有原則的公司要么面面俱到眯分,要么做沒有必要的投入拌汇,用不了幾年,進(jìn)步的速度就落后了颗搂。
這就是攻城與守城的關(guān)系担猛,當(dāng)一項改進(jìn)完成之后,相應(yīng)部分所占資源比重就下降丢氢,人必須轉(zhuǎn)移到下一項去解決瓶頸問題傅联。
阿姆達(dá)爾法則不斷適用于計算機領(lǐng)域,在經(jīng)濟(jì)學(xué)和資源調(diào)配上也有指導(dǎo)意義疚察,比如二氧化碳減排蒸走。目前各國政府還在為二氧化碳等溫室氣體的減排政策而爭論不休,為什么沒有結(jié)果呢貌嫡?因為提倡二氧化碳減排的國家在全球碳排放中占比很少比驻,在整個歐洲除俄羅斯以外,碳排放最多的五個國家是德國岛抄、英國别惦、意大利、法國夫椭、波蘭掸掸,他們只占全球碳排放的6%,即便降到0也沒太大作用蹭秋,而中國和美國加起來占全球碳排放43%扰付,這兩個國家如果能降低15%,就比上面五個國家還多仁讨。
對于個人來說羽莺。阿姆達(dá)爾法則也是決定我做什么和不做什么的原則。對于那些只能產(chǎn)生1%貢獻(xiàn)的事情洞豁,即便你提高100倍作用也有限盐固,但對于有一半作用以上的事情,哪怕提高5%丈挟,你都能看到整體2.5%的提高刁卜。當(dāng)然,當(dāng)一些問題得到解決之后礁哄,它的重要性就下降了,我們就要著手解決新的瓶頸問題溪北。
我們個人在運用阿姆達(dá)爾法則的時候桐绒,還可能遇到下面三個問題夺脾。
1、阿姆達(dá)爾法則與將一件事做到極致是否沖突呢茉继?
阿姆達(dá)爾法則從本質(zhì)上來講是一個做事優(yōu)先級順序的原則咧叭,并不是說事情不要做到極致,因此它們并不矛盾
阿姆達(dá)爾是從整體上優(yōu)化一個系統(tǒng),一個整體包括很多部分烁竭,先優(yōu)化哪個部分菲茬,后優(yōu)化哪個部分就有講究了,阿姆達(dá)爾法則是幫助大家挑出當(dāng)前最需要優(yōu)化的部分派撕,當(dāng)然這并不意味著其他部分不需要優(yōu)化了婉弹,只是優(yōu)先級低罷了。
在優(yōu)化整個系統(tǒng)的過程中终吼,通常瓶頸問題被解決了之后镀赌,它就從主要矛盾下降為次要矛盾,比如說原先占據(jù)計算讀取時間50%的內(nèi)存下降為20%际跪,下一次或許就要改進(jìn)其他問題了商佛,而不是繼續(xù)提高內(nèi)存速度,因為其他問題就可能成為瓶頸問題姆打,改進(jìn)之后對整體效率提升會更明顯良姆。因此,IT行業(yè)大家采用阿姆達(dá)爾法則一遍又一遍改進(jìn)計算機系統(tǒng)的性能幔戏,可能有些部分在一次次循環(huán)改進(jìn)中已經(jīng)實現(xiàn)了做到極致玛追。
2、阿姆達(dá)爾法則如何用在生活中评抚?
在應(yīng)用阿姆達(dá)爾法則的時候豹缀,量化度量、數(shù)據(jù)慨代、測試非常重要邢笙。
計算機的性能是可以通過標(biāo)準(zhǔn)測量得出的,可以準(zhǔn)確地判斷出計算機在完成程序時每一個部分所需的時間侍匙。但是在現(xiàn)實工作中氮惯,其實沒有這樣現(xiàn)成的測試工具,需要自己根據(jù)實際工作來設(shè)計或者采用其他辦法來得到統(tǒng)計數(shù)據(jù)想暗,經(jīng)驗是不準(zhǔn)確的「竞梗現(xiàn)在數(shù)據(jù)非常重要,在沒有數(shù)據(jù)支持的情況下最好不要下結(jié)論说莫。
3杨箭、阿姆達(dá)爾法則是時間管理重要的守則,永遠(yuǎn)做那些對結(jié)果貢獻(xiàn)比例最大的事情储狭。但是我在生活和工作中遇到的事情是這樣的互婿,一件事情對未來的貢獻(xiàn)是50%捣郊,另一件事對現(xiàn)在的貢獻(xiàn)是10%,那么該如何取舍慈参?是做對未來貢獻(xiàn)大的事情還是對現(xiàn)在貢獻(xiàn)大的事情呢呛牲?
其實考慮這一問題非常簡單,眼前這個10%的事情如果不做是否有麻煩驮配,如果麻煩不大娘扩,那建議還是做對未來有50%貢獻(xiàn)的事情。
我的思考
為什么我要一個字一個字的將吳軍老師的文章內(nèi)容敲出來壮锻,因為這個阿姆達(dá)爾法則對我有很大的啟發(fā)琐旁,它推動了計算機行業(yè)的快速進(jìn)步,我也在追求個人的快速進(jìn)步躯保。
有一點是共識旋膳,找到最重要的事情,全力以赴途事⊙榘茫可是“什么最重要?”其實有很多模糊的地方尸变,笑來老師兩年前丟下這句話义图,后來的踐行中果然遇到問題了,現(xiàn)在結(jié)合今天的這個阿姆達(dá)爾法則與以往的思考總結(jié)一下召烂。
1碱工、量化。什么最重要奏夫?我以前毫不猶豫的回答“成長”怕篷,可是,成長太模糊了酗昼,很多都能讓自己成長廊谓,自己最需要什么呢?不同方面的占比如何麻削?目前的性能如何蒸痹?都不知道,因為沒有量化呛哟。
2叠荠、動態(tài)滾動。最重要的事情當(dāng)然是占比最高的扫责,去做了對整體提升也最大榛鼎。但現(xiàn)在占比最高,不代表永遠(yuǎn)最高,最重要的事情是不斷動態(tài)滾動變化的者娱,需要輪動發(fā)展蜘渣。
3、密度肺然。這是從《指導(dǎo)生活的算法》一書中學(xué)到的概念,一個任務(wù)的密度=重要程度/完成時間腿准。按照任務(wù)密度從高到低去做事情际起,這樣就可以讓總的心理負(fù)擔(dān)最小,這叫做“加權(quán)最短時間處理算法”吐葱。簡單說街望,做工作要首先考慮單位時間內(nèi)收入最高的。
4弟跑、后果與貼現(xiàn)率灾前。針對上面提到的第三個問題,對于是做對未來貢獻(xiàn)大的事情還是對現(xiàn)在貢獻(xiàn)大的事情呢孟辑,除了考慮不做的后果哎甲,還要考慮貼現(xiàn)率,也就是你認(rèn)為未來價值與當(dāng)下價值的比率饲嗽,這與當(dāng)下是否短缺有關(guān)炭玫,如果當(dāng)下處于短缺狀態(tài),那么自然是先做對現(xiàn)在有貢獻(xiàn)的事情貌虾,管不了太久的以后吞加。