性能在软件开发中的地位
一提到性能,很多堆代码的码农会觉得很高大上。也许有人也会认为,在计算机的世界里,性能很重要。这些都是表面上的看法,让我们仔细想想,性能的到底有多重要。
说我们和计算机打交道,不如说我们在和计算机上的软件或应用程序在打交道。从用户的角度来看,你会觉得,对于一款软件或程序来说,什么是最重要的?
丰富的功能
稳定性
用户体验
其他
首先你想一下,如果一款软件或程序,没有你想要的功能,你会使用么?如果一款软件用着用着就崩溃了,你会使用么?如果一个软件设计的一点不人性化,你会使用么?
从软件开发者的角度来看,你会觉得开发一款软件或程序,什么是最重要的?
开发成本
可维护性
安全性
可扩展性
其他
仔细考虑一下,这些因素都比性能重要!但并不是性能不重要。如果,性能不重要,还要算法干什么?
麻省理工学院算法导论课的第一课,教授对性能的总结很到位:
性能不是最重要的,但是为什么要研究性能?
一、有些场合,性能会决定可用性,是可行性与不可行性的界限。
比如说实时系统,如果性能不够快,则不可用;比如计算机内存,使用太多而剩余空间不足,也会导致计算机的不可用。
二、性能就像金钱,可以拿它换来想要的东西
首先,你会问100块钱有什么用?你是买食物,买水果,还是租房子呢?而性能,就是你用来支付用户友好性的东西,也可以用来购买安全等其他东西。
再者,开发一款程序,可以用C语言,也可以用Java。但是开发者都知道Java比C语言慢的多,会牺牲一些性能,但是会说用Java开发很值。因为,Java的有面向对象、异常处理机制等等。
所以性能通常是最底层的,它会用来衡量通用的事物。比如,你愿意花两倍的性能在xxx上面,或者花费3倍的性能用在安全上。
其实这个总结很到位,就像在现实生活中,金钱不是最重要的,但是没有金钱确实万万不能的。你用金钱可以换来很多你想换的东西。比如你想花100万去买一辆你非常喜欢的汽车,此时,你会觉得100万和车哪个重要呢?肯定是车重要!因为,你愿意牺牲100万去换来你喜欢的汽车。
性能不是最重要的,但是没有性能又是万万不能的,真是既矛盾又统一啊!
版权声明
本作品采用知识共享署名-非商业性使用 4.0 国际许可协议进行许可。 本站博文除注明转载/出处外,均为本站原创或翻译,转载前请务必署名。