过早优化是万恶之源

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

相关文章

来自专栏BestSDK

GNU/Linux与开源文化的那些人和事

image.png 一、计算机的发明 世上本无路,走的人多了,就有了路。世上本无计算机,琢磨的人多了……没有计算机,一切无从谈起。 三个人对计算机的发明功不可没...

25110
来自专栏云计算D1net

实现云直连的需求有哪些

直连提供了一个更有效的方式将数据迁移到公有云。但组织该如何设置到云的直连呢? 公有云直连能够在数据中心和云服务提供商之间提供更可靠,更安全的网络。为了能满足企业...

3327
来自专栏罗超频道

微软新浏览器命名Edge并发布视频大片,名字不大好视频很华丽

大家还记得微软给WIN10新内置的浏览器Spartan吧?它被中国用户亲切地换做斯巴达,这个名字挺好记的。 这是一款与IE使用完全不同内核的全新一代浏览器,是微...

3466
来自专栏Java架构

程序员如何通俗易懂的给老婆解释什么是微服务?

程序员有了老婆之后就是累,上次好不容易给她解释了什么是Restful,这不,麻烦又来了…

1482
来自专栏微信小开发

今天,你@微信官方许了什么心愿?

今天一打开微信, 发现朋友圈里好多人 在@微信官方要圣诞帽, 还有要「红鼻子+白胡子+一副眼镜 +圣诞树+雪人」的, 连要微信红包的都有。 朋友们提出的要求,一...

2096
来自专栏程序人生

软件设计杂谈

disclaimer: 本文所讲的设计,非UI/UE的设计,单单指软件代码/功能本身在技术上的设计。UI/UE的主题请出门右转找特赞(Tezign)。:) 在如...

3107
来自专栏企鹅号快讯

虚拟化异地备援解决方案

资讯系统应用已深深影响人类的生活,因应地球暖化议题政府提倡节能减碳、组织改造、机房共构,以减少政府的资源浪费并提升组织效率。网路的连结企业面对全世界的竞争,企业...

1997
来自专栏机器人网

小型无人机飞控系统如何组成和设计?

在经历了早期的遥控飞行后,目前其导航控制方式已经发展为自主飞行和智能飞行。导航方式的改变对飞行控制计算机的精度提出了更高的要求;随着小型无人机执行任务复杂程度的...

3043
来自专栏资深Tester

一个致命的bug--自负

2178
来自专栏安智客

Intel芯片架构中TEE的实现技术之SGX初探

应该来说可信执行环境不仅仅指的是基于ARM的Trustzone技术的各种安全操作系统,还包括基于intel公司提出的SGX技术,以及虚拟化机制,比如L4微内核等...

3128

扫码关注云+社区