【杂谈】为什么要追求算法性能?因为性能是一种“货币”

       最近花了一周左右时间学了一遍 MIT《算法导论》的线上课程,作为自己系统性地梳理算法知识体系的一项增强。其中里面的教授讲到一句话让我印象非常深刻:

       ”做程序设计的时候为什么要考虑性能,有什么比性能更重要的吗?“

       这个问题我想大多数人都能给出自己的答案,有人会说,开发速度,因为业务要快速上线,快速迭代,性能的事情等功能都开发完了再说。有人会说,代码的可维护性,讲究高效的模块化设计,方便日后增删改等等。有的人会说,安全性,我需要多加一些验证,校验等等来保证我的数据是安全的,还有人会说,用户友好性,界面要漂亮,至于底层性能快不快是次要考虑的。等等等等,还有成本,简洁性,稳定性......

       既然我们对这样一个问题能给出这么多的回答,那么我们好像都可以在写代码之初就完全不用管性能了,专注于我们需要的方面就行。等实际程序运行中发现速度慢了,性能到达瓶颈了再回过头来分析哪里是瓶颈就行了,是吗?

       有过这样想法的人包括我自己,相信都已经或者早就吃过亏了。当一个低效率的设计经过多次迭代,四处调用形成耦合以后,再回过头来改发现有种无力的感觉,叫”积重难返“!甚至完全改不动,这还不算为了找到瓶颈所在,定位分析的过程中耗费的大量精力,有时还找不准问题到底出在哪。

       这里这位教授举了一个例子:对于一个人个体来说,我们需要什么?食物,水资源,衣服,房子,等等等等,但是你每天关注的事情是什么?是挣钱。钱对你来说有什么用,能作为食物来吃,水来喝,衣服来穿吗?并不能。但是钱可以换取食物和水,可以买衣服买房子,这就是我们只关注如何挣钱的原因。在一个程序中,你需要以积攒高效的性能作为支付其他方面的”货币“,因为我们关注的点:开发速度,可维护性,安全性,用户友好,成本,稳定性..... 这些都会消耗掉性能。所以当我们优化提升性能的时候,就像在挣钱。只有挣够了钱你才有选择去实现你要的那些方面,才有可能去提升在这些方面的表现。

       所以结论是,性能是程序设计的”货币“,平时注意优化性能就是在为以后的各方面实现来积累足够多的”货币“(资本)。

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

Powered By Z-BlogPHP 1.5.2 Zero

Copyright liuyang1.com. 转载文章,请注明出处。谢谢!