过早优化是万恶之源

Don’t Cut Yourself: Code Optimization as a Double-Edged Sword。中文翻译:过早优化是万恶之源。

代码优化的好处多多,但是这并不意味着所有的代码都需要进行优化,有时过度的优化反而适得其反——费时、费力、不讨好。 “现代计算机科学的鼻祖”Donald Knuth曾说过“过早的优化是万恶之源”,因为:让正确的程序更快,要比让快速的程序正确容易得多。文中讲了7个原则,简单罗列如下:

1. 究竟要优化什么? 2. 选择一个正确的优化指标 3. 优化在刀刃上 4. 优化层次越高越好 5. 不要过早优化 6. 依赖性能分析,而不是直觉 7. 优化不是万金油

更详细的大家可以看英文:http://blog.smartbear.com/programming/dont-cut-yourself-code-optimization-as-a-double-edged-sword/

为什么把这个话题拿出来讨论下,因为我现实中发现过早优化,其实是一个非常容易犯的错误。举几个例子:

1、数据库优化中,为了性能优化,放弃通用性,把SQL全部用C语言重写,这种技术是不可能得到发展的。

2、Hadoop领域里面,Tez/stringer为了解决hive性能,只是将M/R通过DAG作业来替代,将多个作业用一个作业来替代,减少中间过程。但是实际上hive用在查询上,除了M/R效率底下外,还有进程启动代价太高,以及最主要的是数据存储不是专门为分析场景准备的。所以我预计如果Tez/stringer只是按照目前的思路优化,最后肯定昙花一现。

3、Shark,hive on spark。简单的将hive拿到spark上来,从最新资料来看,DataBricks 已经被放弃了shark,转而将重心放到 Spark sql上面来。

不要为了优化而优化,优化应该先做好顶层设计,再落地到具体的技术细节,否则优化出来的东西,不会有长久的生命力。

原文发布于微信公众号 - 大数据和云计算技术(jiezhu2007)

原文发表时间:2014-11-22

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏Rainbond开源「容器云平台」

为啥说Kubernetes是云服务的未来?

994
来自专栏量子位

谷歌“网红”打电话AI即将在美国公测,让AI帮你订座不是梦

1096
来自专栏PPV课数据科学社区

【资讯】“口味”广告:看 Pandora 音乐大数据如何变现

Pandora 的大数据要“变现”了,而且用了一种有趣的方式。 Pandora 的变现逻辑是这样的:通过播放你喜欢的音乐–>然后播放近似的口味–>进一步发掘每个...

2646
来自专栏数据和云

蝴蝶效应、严寒以及数据库容灾备份

2016年1月11日张小龙在微信公开课谈到微信传播事件的“蝴蝶效应”: 很多人都在朋友圈里晒出了自己的第一个好友,发了多少红包这样一个数据...却导致了一连串事...

3184
来自专栏飞总聊IT

大数据到底是什么

最近这段时间有很多人问我,大数据到底是什么。当然实际上问题没有那么直接。更多的问题是,飞总啊你看我亲戚家的那个企业是不是可以上个大数据啊,用起来就能发财了。或者...

33912
来自专栏大数据和云计算技术

大数据和云计算技术周报(第49期)

“大数据” 三个字其实是个marketing语言,从技术角度看,包含范围很广,计算、存储、网络都涉及,知识点广、学习难度高。

802
来自专栏FreeBuf

极客DIY:如何利用树莓派提高睡眠质量?

众所周知睡眠是人类生活不可或缺的一部分,如果睡眠不足会引发很多问题(身体、情绪等),那么怎么和树莓派有关系呢?请看看下面文章相信对你会很有帮助。 写在前面 过去...

2025
来自专栏鹅厂网事

腾讯服务器平台架构师精彩分享天蝎3.0整机设计方向

"鹅厂网事"由深圳市腾讯计算机系统有限公司技术工程事业群网络平台部运营,我们希望与业界各位志同道合的伙伴交流切磋最新的网络、服务器行业动态信息,同时分享腾讯在网...

2606
来自专栏云计算D1net

印度担忧Aadhar计划 Mongo DB跟着引争议

1.受棱镜门影响,各界对Aadhar的质疑从是否将威胁人民隐私与安全,转而聚焦在 Aadhar 搜集、储存以及处理资料的方法,以及美国新创公司 MongoDB...

3845
来自专栏PPV课数据科学社区

警察叔叔是怎么用大数据来思考与实践的

近年来,伴随着全国各地公安机关信息化的迅猛发展,数据共享和深化应用的需求空前高涨。但是,随着数据的汇聚和数据量的爆炸式增长,传统的数据库和数据仓库技术出现了诸多...

3129

扫描关注云+社区