亲爱的MBA智库百科用户:


过去的17年,百科频道一直以免费公益的形式为大家提供知识服务,这是我们团队的荣幸和骄傲。 然而,在目前越来越严峻的经营挑战下,单纯依靠不断增加广告位来维持网站运营支出,必然会越来越影响您的使用体验,这也与我们的初衷背道而驰。 因此,经过审慎地考虑,我们决定推出VIP会员收费制度,以便为您提供更好的服务和更优质的内容。


MBA智库百科VIP会员,您的权益将包括: 1、无广告阅读; 2、免验证复制。


当然,更重要的是长期以来您对百科频道的支持。诚邀您加入MBA智库百科VIP会员,共渡难关,共同见证彼此的成长和进步!



MBA智库百科项目组
2023年8月10日
百科VIP
未登录
无广告阅读
免验证复制
1年VIP
¥ 9.9
支付方式:
微信支付
支付宝
PayPal
购买数量:
1
应付金额:
9.9
汇率换算:
1.32
美元(USD)
  • 美元(USD)
  • 加元(CAD)
  • 日元(JPY)
  • 英镑(GBP)
  • 欧元(EUR)
  • 澳元(AUD)
  • 新台币(TWD)
  • 港元(HKD)
  • 新加坡(SGD)
  • 菲律宾(PHP)
  • 泰铢(THB)

按当月汇率换算,

包含手续费

打开手机微信 扫一扫继续付款
立即开通
PayPal支付后,可能会遇到VIP权益未及时开通的情况,请您耐心等待,或者联系百科微信客服:mbalib888。
温馨提示:当无法进去支付页面时,可刷新后重试或更换浏览器
开通百科会员即视为同意《MBA智库·百科会员服务规则》

支付成功

全球专业中文经管百科,由121,994位网友共同编写而成,共计436,079个条目

過早優化

用手机看条目

出自 MBA智库百科(https://wiki.mbalib.com/)

目錄

[隱藏]

什麼是過早優化

  過早優化 (Knuth's optimization principle)又稱“克努特優化原則”最早由電腦科學家高德納提出。在《goto語句的結構化編程》論文中,他寫到[1]

  “程式員們浪費大量時間去思考或者擔心他們程式中非關鍵部分速度。而在考慮調試和維護時,這些所謂提高效率做法實際上十分不妥。我們應該放棄小效率點,並且要在97%時間提醒自己,過早優化是萬惡之源,而且連那關鍵3%也不能夠放過。”

  優化是一個褒義詞,涵義積極正面。甚至於,很多人不加思考地追求最優化。但“差之毫釐,謬以千里”,將優化絕對化,不管何時何地都追求最優化,會反受其害。

  例如,前置思考中提到,恐龍等頂級掠食者,為高居食物鏈頂端,演化方向較為單一,追求長得更大、更有力量、跑得更快、爪牙更鋒利,讓少數幾個性狀逼近生理極限,使自己沒有天敵。

  如此一來,其他多數性狀都喪失發展機會。這在生物學界,被稱為“演化單行道”,甚至是“演化死衚衕”。錶面上看起來很強大,但實際上很脆弱。

  也就是說,最優是最優,但環境一變卻因為無法適應,導致種族滅絕。可以說,片面追求最優化,是“撿了芝麻,丟了西瓜”。凡事利弊兼具,過早片面優化,可能帶來災難。

過早優化的啟示[1]

  避免過早優化,不是說不要優化,僅僅是說“不要過早”優化。也就是說,優化之前要判斷是否是優化時機。

  做一個類比,就好像我們畫畫,先畫輪廓、草圖,然後填入細節,一步步臻於完美。這有嚴格優先順序順序。

  如果剛畫幾筆,就開始優化細節,很可能這個局部畫得很好,達到局部最優,但整體結構編排不當,產生結構性缺陷,最後畫作質量平平,可能就淪為平庸之作。

  類似的,寫一篇文章,首先考慮的是中心思想、整體框架,其次是段落編排、起承轉合,最後才是文字潤色、咬文嚼字,如果顛倒這個順序,也屬於過早優化。

  要優化,不要過早優化,核心在於優化目標設定。

  過早優化,其實是在追求“局部最優解”,意即:把其中一部分做到極致,再做另一部分。陷阱在於,劃分部分方法可能失之隨意、整體失當,容易導致局部優化對整體影響不可控。

  適時優化,其實是在追求“全局最優解”,意即:優化整體表現。劃分方式往往是,從整體到部分、從抽象到具體,先驗證邏輯,再補充細節,這樣就不容易鎖死在局部高峰,更有條件登上整體高峰。

  換一種說法是,在沒有找到影響整體最優最重要幾個因素前,不要過早把資源投放到次要甚至完全不重要因素優化上。

  高德納最早提出過早優化概念,就是因為洞察到,程式員在錯誤方向和時間點浪費太多時間。對此,有一個類比說,還沒有寫完程式,你就開始考慮它的性能問題,這樣的軟體好比姑娘還沒有成年卻已經嫁人了。

  事實上,只有通過測量並找出真正存在問題地方,才需要開啟優化。

  類似的,在商業領域、管理領域等,先推出最小可用品,獲得真實數據反饋,明確自己所開發產品或者解決方案,真正符合市場需要,才不會在錯誤開發方向浪費過多資源。

  值得註意的是,分辨什麼是局部高峰、什麼是整體高峰,富有挑戰。

  也就意味著,可能要反覆試錯,常走下坡路,這需要科學方法和足夠耐心。如果一個人不能延遲滿足,只能接受走上坡路有序愉悅,不能接受走下坡路混亂痛苦,就容易掉入過早優化陷阱。

參考文獻

  1. 1.0 1.1 Donald E Knuth, 蘇運霖. 帶goto語句的結構程式設計(續)[J]. 電腦科學, 1982(3):36-52.
本條目對我有幫助1
MBA智库APP

扫一扫,下载MBA智库APP

分享到:
  如果您認為本條目還有待完善,需要補充新內容或修改錯誤內容,請編輯條目投訴舉報

本条目由以下用户参与贡献

上任鹅陈.

評論(共0條)

提示:評論內容為網友針對條目"過早優化"展開的討論,與本站觀點立場無關。

發表評論請文明上網,理性發言並遵守有關規定。

打开APP

以上内容根据网友推荐自动排序生成

官方社群
下载APP
告MBA智库百科用户的一封信
亲爱的MBA智库百科用户: 过去的17年,百科频道一直以免费公益的形式为大家提供知识服务,这是我们团队的荣幸和骄傲。 然而,在目前越来越严峻的经营挑战下,单纯依靠不断增加广告位来维持网站运营支出,必然会越来越影响您的使用体验,这也与我们的初衷背道而驰。 因此,经过审慎地考虑,我们决定推出VIP会员收费制度,以便为您提供更好的服务和更优质的内容。 MBA智库百科VIP会员(9.9元 / 年,点击开通),您的权益将包括: 1、无广告阅读; 2、免验证复制。 当然,更重要的是长期以来您对百科频道的支持。诚邀您加入MBA智库百科VIP会员,共渡难关,共同见证彼此的成长和进步!
MBA智库百科项目组
2023年8月10日

闽公网安备 35020302032707号

添加收藏

    新建收藏夹

    编辑收藏夹

    20