过早优化是万恶之源

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 条评论
登录 后参与评论

相关文章

来自专栏个人分享

大数据理论体系总结--数据仓库管理与全链路数据体系

  就这样,大数据领域蓬勃发展了好几年,有很多伙伴执迷于技术,成为了分布式计算与存储的领域专家。也有很多伙伴执迷于数据,成为了行业的数据研发专家。当然还有很多小...

774
来自专栏魏琼东

DotNET企业架构应用实践-系统架构与性能-理论依据及相关技术

性能优化介绍       在企业应用开发领域,企业架构与性能将会是一个恒久的话题,如何提高性能、性能优化也将是一个长期和不断改进的过程,有人在硬件投入上下功夫、...

1776
来自专栏美团技术团队

孵化业务快速落地与优化

海外酒店是酒旅事业群第一个孵化的业务,从2016年9月份开始到现在已经半年多的时间。在业务后台搭建、成长、优化过程中,经历了很多的思考与选择。 主要分为下面几个...

3489
来自专栏云加新鲜事儿

为什么MOBA、“吃鸡”游戏不推荐用tcp协议——实测数据

我们知道,不同类型的游戏因为玩法、竞技程度不一样,采用的同步算法不一样,对网络延迟的要求也不一样。例如,MOBA类游戏多使用帧同步为主要同步算法,竞技性也较高,...

11.9K8
来自专栏杨建荣的学习笔记

数据架构难点-数据分布(r12笔记第43天)

数据架构是架构设计中很重要的一环,可能对于很多DBA而言,数据管理,数据优化,数据迁移类的工作居多,而对于数据架构方面的工作也会思考少一些,这方面就会薄弱...

2598
来自专栏java一日一条

前谷歌高级Java架构师分享工作8年经验(如何成为一名架构师)

很多工作一定年限的程序员感觉自己到了瓶颈不知道怎么去突破,其实这个时候就要冲破传说中的架构师。

751
来自专栏数据和云

必读推荐:深入解读Oracle 18c对于DBA的影响及应对措施

? Joel Perez Oracle ACE Director,云和恩墨高级云技术专家 "DBA 将要失业了吗? 当引入自治数据库之后,就永远不需要...

3739
来自专栏BestSDK

听清华大学教授讲闪存的前世今生:磁盘、硬盘、固态

磁盘自从2000年以来,带宽100兆左右,没有太大的变化,延时也没有太大的变化,往后我觉得即使有优化也不会很大。 另外一个,IBM 2020年要构建一个大的存...

3376
来自专栏SDNLAB

从分层角度HACK网络

网络的可靠性、冗余性自从网络诞生以来就是一个不曾停止过讨论的话题,最近阿里云发布了云骨干网这一产品,引起了业界的广泛讨论,突然觉得在广域网领域有一些事情发生,比...

2684
来自专栏Android群英传

Android里的平行宇宙

893

扫码关注云+社区