亲爱的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