绽花石最近看到一个有趣的编程语言研究,它把27种编程语言放到一起做了一个基准测试。
一般的基准测试无非是看看哪个编程语言最快,而这个研究还要看看谁消耗的能量最高。
其中的一个结果让人震惊,Python竟然比C慢71倍,消耗的能量居然是C的75倍!
这个测试集很有趣,既包括程序员熟悉的“二叉树遍历”,也包括“N体问题”这样的天体运动模拟,目的是尽可能多地覆盖到更多领域。
在速度上,不出意料,C语言最快,以它为基准,Python是71.90,Lua最慢。
在能量消耗上,C语言最低,以它为基准,Python是75.88,Perl最差。
运行速度最快的编程语言:C、Rust、C++、Ada、Java,在节能榜也名列前茅。
所以研究团队找了一个叫Rosetta Code的测试集合,再次对结果进行验证。
Rosetta Code的特点是是对同一个编程任务,有几百种编程语言的实现!
由于它的目标不是优化程序,而是为了展示不同编程语言的相似之处和不同之处,让学习者能快速地学习另外一种编程语言。
唯一的例外是Java,排名大幅下降,因为在Rosetta Code的实现中,大量使用了Java集合(如List和Set),而不是静态的数组,从而拖累了Java的性能。
我想说,如果你是一个环保主义者,觉得应该对气候变暖负责任,根据这个研究结果,那你一定得选择C语言来编程!
但是呢,这个研究只关注编程语言在运行时的表现,它不考虑软件的编写成本、维护成本。
想用它写出和Java、Python同样功能的程序,花费的时间要长得多,电脑开机的时间也要长得多,这么算下来,用C语言消耗的能量可能远远超过Java和Python。
对于系统级的软件和对性能要求高的软件,C、C++、Rust是不二之选,对于应用层的软件,需要快速实现多变的业务逻辑,还是选择Python、Java、JS、Ruby等编程语言吧,适合的才是最好的!
|