性能在软件开发中的地位


一提到性能,很多堆代码的码农会觉得很高大上。也许有人也会认为,在计算机的世界里,性能很重要。这些都是表面上的看法,让我们仔细想想,性能的到底有多重要。

说我们和计算机打交道,不如说我们在和计算机上的软件或应用程序在打交道。从用户的角度来看,你会觉得,对于一款软件或程序来说,什么是最重要的?

  • 丰富的功能

  • 稳定性

  • 用户体验

  • 其他

首先你想一下,如果一款软件或程序,没有你想要的功能,你会使用么?如果一款软件用着用着就崩溃了,你会使用么?如果一个软件设计的一点不人性化,你会使用么?

从软件开发者的角度来看,你会觉得开发一款软件或程序,什么是最重要的?

  • 开发成本

  • 可维护性

  • 安全性

  • 可扩展性

  • 其他

仔细考虑一下,这些因素都比性能重要!但并不是性能不重要。如果,性能不重要,还要算法干什么?

麻省理工学院算法导论课的第一课,教授对性能的总结很到位:

性能不是最重要的,但是为什么要研究性能?

一、有些场合,性能会决定可用性,是可行性与不可行性的界限。

比如说实时系统,如果性能不够快,则不可用;比如计算机内存,使用太多而剩余空间不足,也会导致计算机的不可用。

二、性能就像金钱,可以拿它换来想要的东西

首先,你会问100块钱有什么用?你是买食物,买水果,还是租房子呢?而性能,就是你用来支付用户友好性的东西,也可以用来购买安全等其他东西。

再者,开发一款程序,可以用C语言,也可以用Java。但是开发者都知道Java比C语言慢的多,会牺牲一些性能,但是会说用Java开发很值。因为,Java的有面向对象、异常处理机制等等。

所以性能通常是最底层的,它会用来衡量通用的事物。比如,你愿意花两倍的性能在xxx上面,或者花费3倍的性能用在安全上。

其实这个总结很到位,就像在现实生活中,金钱不是最重要的,但是没有金钱确实万万不能的。你用金钱可以换来很多你想换的东西。比如你想花100万去买一辆你非常喜欢的汽车,此时,你会觉得100万和车哪个重要呢?肯定是车重要!因为,你愿意牺牲100万去换来你喜欢的汽车。

性能不是最重要的,但是没有性能又是万万不能的,真是既矛盾又统一啊!


版权声明

本作品采用知识共享署名-非商业性使用 4.0 国际许可协议进行许可。 本站文章除注明转载/出处外,均为本站原创或翻译,转载前请务必署名。