点击上方蓝字关注我,了解更多咨询

提到编程语言,人们第一时间想到的无非是:哪个编程语言简单易学,亦或是最挣钱等。但是编程语言功耗问题却被很多人忽视。那么作为程序员的我们如何选择编程语言,使其以低能耗高功效地工作呢?

2017年,葡萄牙大学的研究人员团队曾发表过一篇题为《各种编程语言的能耗》的论文,他们比较了各个编程语言(及其编译器/解释器)的能耗,为此他们研究了 27 种知名编程语言的运行时、内存使用情况以及能耗。最后,C 成为了无可争议的赢家,其能耗最低,而 Python 和 Perl 则处于最末位。

据悉,这项研究采用了多种方法论和多个基准测试。每种语言使用十个编程问题来进行调查,帮助研究人员获得更具有可比性、代表性和广泛性的程序,以及编译/执行选项和编译器版本。

C /C++能耗最低且最快

尽管人们普遍认为程序运行速度更快时能源消耗会随之降低,但论文中明确指出“更快的语言并不总是最节能的”,强调这并不像 E(nergy) = T(ime) x P(ower) 的物理定律那么简单。

比如在他们的一项基准测试中,Chapel 程序的执行时间比用 Pascal 编写的等效程序少 55%——但 Pascal 程序使用的能量少 10%。

在人们传统印象中,编译语言“往往”是最节能、运行速度最快的。首先我们来看一看编译语言在二叉树测试上的结果。

不出意料,这项研究得出的结论为:编译语言是最快和最节能的语言。C 和 C++ 语言是能耗最低且最快的语言。Go 是编译语言中表现最差的语言,甚至比依赖虚拟机的 Java 或 Erlang 等还要糟糕,至少在二叉树的测试中是这样。

Perl、Lua 和 Python能耗高

下面看一下解释型语言在速度与能耗方面的表现,由测试可知解释型语言才是能耗最高的语言,比如 Perl、Lua 和 Python。

而5 种最慢的语言也是解释型语言,如:Lua、Python、Perl、Ruby 和 Type。但在使用正则表达式操作字符串时,5 种最节能的语言中有三种解释型语言,分别是 TypeScript、JavaScript 和 PHP。

请注意,所有测试都是在如下环境运行:Intel Core i5-4460 Haswell CPU @ 3.20GHz,16GBRAM,Ubuntu Server 16.10 操作系统和Linux 4.8.0-22。考虑到如今 MicroPyhon 可以在各种微控制器上运行,猜它在体积更小的设备上的表现可能不会那么糟糕。

此外,这项研究还根据时间、内存和能耗参数的不同目标组合,对每种语言进行了排名,而在这些指标中 C 语言始终名列前茅。这与人们长久以来的认知相同,如果你想优化程序,提高续航时间,降低功耗,则 C 语言绝对是最佳选择、汇编语言、SIMD 指令或加速器的自定义指令优化某些例程。

END

*声明:本文于网络整理,版权归原作者所有,如来源信息有误或侵犯权益,请联系我们删除或授权事宜。

戳“阅读原文”我们一起进步

Python、Perl 垫底,C语言才是最环保的编程语言相关推荐

  1. python perl 比较生信_科学网—生信人写程序1. Perl语言模板及配置 - 刘永鑫的博文...

    科学网对Markdown排版支持较差,对格式不满意的用户请跳转至 CSDN 或微信阅读: 如果感觉文章对您有帮助,想继续阅读同类文章,请扫描下方二维码关注"生信宝典"公众号,每天接 ...

  2. python去年软件排行_2017年编程语言排行榜,Python位居榜首(C语言需求最大)

    最近IEEE Spectrum 发布了编程语言交互式排行榜,为很多学习代码的朋友们详解各类代码语言的需求和占有率.为学习代码的朋友们能更加重视哪一种编程语言而有一个明确的方向.下面排行榜123网为你公 ...

  3. 编程语言也环保?C语言领跑,Python、Perl垫底

    文 | Travis 出品 | OSC开源社区(ID:oschina2013) 毋庸置疑,Python 是世界上最流行的编程语言之一,其被广泛运用于人工智能.数据分析.网络爬虫和 Web 开发等领域. ...

  4. perl php python 速度,Perl,Php,python等各种脚本语言现状

    Perl,Php,python等各种脚本语言现状 文章作者:网友投稿 发布时间:2008-09-01 13:38:51 来源:网络 曾经程序语言世界里的二等公民,脚本语言(也叫动态语言)正成为开发者的 ...

  5. c++强大还是python强大-Python 到底是强类型语言,还是弱类型语言?

    0.前言 我在上一篇文章中分析了 为什么 Python 没有 void 类型 的话题,在文章发布后,有读者跟我讨论起了另一个关于类型的问题,但是,我们很快就出现了重大分歧. 我们主要的分歧就在于:Py ...

  6. python perl lisp_巴别塔-编程语言之旅【转】——C、C++、Lisp、Java、Perl、Ruby、Python核心比较...

    译者:qinjian623原文作者:Steve Yegge 说明 但是由于文章内容比较和我胃口,还是决定再翻译一个版本. 巴别塔 这是我自己混乱的编程语言之旅,原本准备这个月写给ADJ(Amazon ...

  7. python是哪种类型的语言-Python到底是强类型语言,还是弱类型语言?

    Python实战社群 Java实战社群 长按识别下方二维码,按需求添加 扫码关注添加客服 进Python社群▲ 扫码关注添加客服 进Java社群▲ 作者丨豌豆花下猫 来源丨Python猫 0.前言 有 ...

  8. python perl r_PHP Python Ruby Perl

    PHP的魅力所在提起老牌经典脚本语言PHP,我们不禁会联想到它的一个令人印象深刻的特点,即上手快,你无需对这个语言进行深入广泛的了解就可以使用它开始编程.在我们知道的语言中,没有几个语言能把这种特点体 ...

  9. python到底是什么东西,python到底是什么语言

    Python是什么? Python是一种解释型.面向对象.动态数据类型的高级程序设计语言,由Guido van Rossum于1989年底发明,第一个公开版本发行于1991年. 像Perl语言一样,P ...

最新文章

  1. 计算机视觉还能撑多久?
  2. “计算机之子”winter:我的前端学习路线与方法
  3. SQL数据库学习-简单查询
  4. Sharepoint 2010 隐藏基本搜索中心搜索结果左侧的分类条件
  5. win8桌面显示开始菜单教程
  6. linux下如何使用sftp命令【转】
  7. Centos 安装 L2tp
  8. java是先学前端还是后端_我应该学前端还是后端?
  9. 90后薪资5年翻10倍,靠的不是钢琴手,而是真家伙!
  10. CMD命令全集(转)
  11. Raphael.js 在vue中使用说明, 以杭州市地图为例
  12. Word在目录里插入引导符(页码前的小点点)的方法
  13. win8 网络 连接计算机名称,成熟的解决方案:Win8系统计算机的解决方案无法连接到WiFi无线网络...
  14. 根据美光内存颗粒上的编码查询对应型号
  15. option/options标签
  16. 百度/谷歌/微软/Facebook 人工智能发展方向
  17. 移动pc客户端迷你版泄露
  18. 如何在系统菜单中添加一个自己的菜单项
  19. Ranch浅析(1)-----简介
  20. 实验二 高频功率放大器

热门文章

  1. 使用Apache JMeter负载测试Web应用程序
  2. Jakarta EE中的规范范围
  3. AppD方法:Java 9支持
  4. idea使用junit测试_在JUnit测试中使用Builder模式
  5. soa学习路线_Web服务安全性和SOA路线图的人为维度
  6. activemq和jms_保证主题,JMS规范和ActiveMQ的消息传递
  7. Java Lambdas和低延迟
  8. 仍不切换到Java 8的6个理由
  9. 为什么坚持使用JavaScript
  10. 使用Cassandra和Nutch爬网