编程语言也环保?C 语言领跑,Python、Perl 和 Ruby 表现不佳
毋庸置疑,Python 是世界上最流行的编程语言之一,其被广泛运用于人工智能、数据分析、网络爬虫和 Web 开发等领域。在上个月的 TIOBE 榜单中,Python 一举超过 C 语言拿下榜首的位置也能够充分说明 Python 的流行程度。
但在 2017 年的一项研究,以及今年的补充研究中表明,Python 和 Perl 在一众参考对象中是不够环保和节能的编码语言。
我们先来说说 2017 年的研究。葡萄牙 Universidade do Minho 大学的研究人员在当时的研究中发现,就执行某些特定任务时消耗的能量而言,在所有参与测试的 27 种编程语言中 Python 和 Perl 的能耗最高,排名垫底,Python 仅比 Perl 稍好一些;而 C 语言能耗最低位居榜首,其次是 Rust、C++ 和 Ada。反应到具体数字上,C 语言的能耗为 1(以排名第一的 C 语言为基准,因此数字为 1),而 Python 和 Perl 都超过了 75。
比较不同编程语言的能源消耗、时间和内存使用情况(2017):
而且此次研究推翻了大多数人惯有的想法,即人们可能会想当然地认为,一个运行速度更快的计算机程序会消耗更少的能源。但研究表明除了速度之外,还有其他因素会给能耗的最终结果产生影响。
自 2017 年以来这些编程语言都发生了大量变化,因此这个结果可能也不能反映现状。为了迎合这些编程语言的更新迭代,研究人员在今年对这项研究做出了补充,他们更新了测试和结果。在更新的测试中,研究人员建立了 DRAM 能耗、峰值内存和执行期间使用的总内存之间的相互关系。
研究团队还进行了一组标准算法以及来自 Rosetta Code 的一些测试,Rosetta Code 是一个比较不同编程语言执行常见算法的网站。从下面的表格可以看出,当涉及到能源消耗时,Python 在大多数测试中都处于排名后半部分,Python 甚至不能在 24 小时截止时间内完成斐波那契任务。
综合最新的测试结果能够看出,Python 和 Perl 在多项测试中依旧排名垫底,虽然 Ruby 并没有倒数第一的测试成绩,但在多项测试中也均排名靠后。而 C、C++ 和 Rust 则刚好相反,它们是这些测试语言中相对最环保的语言。

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
Cubic —— 一站式应用问题定位平台
Cubic一站式问题定位平台,以agent的方式无侵入接入应用,提供各种指标,动态线程堆栈追踪,完整集成arthas功能模块,致力于应用级监控,帮助开发人员快速定位问题。 官方网站:https://cubic.jiagoujishu.com Gitee:https://gitee.com/dromara/cubic Github:https://github.com/dromara/cubic Demo:http://47.104.79.116:6080 特性: 1、兼容性:整体监控不管你是IDC、ECS、Docker部署,都可完美兼容 2、易用: 无需任何配置,开箱即用,基于agent无侵入接入,升级应用端无感知 3、强大: 支持对应用的基础监控、堆栈监控、线程池监控等等 4、高扩展:提供良好的扩展接口,给你自主选择
- 下一篇
PHP 8.1 性能基准测试
PHP 8.1 已于上周正式发布,科技媒体Phoronix紧随其后发布了针对 PHP 8.1 的性能基准测试报告。 此次测试是在运行 Ubuntu Linux 的 AMD EPYC 72F3 服务器上进行的。所有受测试的版本都是在同一个系统上用相同的软件包和相同的构建选项重新构建的。用于参考对比的版本包括:PHP 8.1、PHP 8.0.13、PHP 7.4.26、PHP 7.3.33、PHP 7.0.33 和 PHP 5.6.40。PHP 7.1/7.2 则因为在这个堆栈中构建和运行时出现了分段故障而被排除在外。 测试环境如下: 测试结果如下: 上图显示了使用PHPbench 测试各版本 PHP 的性能结果。可以看到的是,自 PHP 5.6 推出以来,该语言在过去的几年里发展的都还不错。现在,在延续了 PHP 7.x 版本中的稳定改进的同时,从 PHP 8.0 到 8.1 又实现了约 4% 的额外改进。 就 PHP Micro 基准测试而言,Phoronix 方面认为虽然它们不是太有用;但从测试结果来看,它们再次彰显了 PHP 在过去几年中的进步。 而在使用 Phoronix Tes...
相关文章
文章评论
共有0条评论来说两句吧...