网站首页 > java教程 正文
很多人的电脑屏幕上都会有一个显示CPU占用率的小球(当然也可能是其他形状,很多人是在下载诸如360等安全软件中带的),很多人在看到数字彪红的时候会很受不了,想要马上清理内存。如今,节能不仅仅是硬件问题,编程语言的选择也可能会对能源消耗产生严重影响,本文我们将深入了解编程语言的能源效率。
多年来,我们将性能与处理时间结合在一起。“它有多好?”的意思是“它有多快?”,开发人员、工程师甚至消费者都会做很多工作,以避免CPU的重大耗尽,保护其电池,能源效率从硬件开始逐渐转化为软件开发。
当尝试衡量编程语言的效率时,会出现很多问题,比如,你使用什么来度量? 编写的程序更快,语言就更节能、更有效率吗? 更快的编程语言是更环保的吗?比较编程语言之间的效率是困难的。语言的性能可以通过其编译器或虚拟机的质量轻松改善,改进源代码与优化库一样重要。
但是,一组葡萄牙研究人员做到了。他们研究了27种最流行的编程语言,以查看速度和效率之间是否存在关系。研究团队通过使用计算机基准测试,使用最先进的编译器、虚拟机、解释器和库来编译/执行程序测试这些编程语言。然后,他们分析了不同编程语言实现之间的性能,整个过程考虑了三个变量:执行时间,内存消耗和能耗。
研究发现:速度并不等效于能源效率。比如C、C ++、Rust和Ada这样的编译语言被列为一些最节能的语言。Java是面向对象语言中速度最快,效率最高的语言之一。解释性编程语言,如Perl,Python和Ruby是最不节能的。研究人员发现,基于CPU的能源消耗总是占能源消耗的大部分。
平均来说,如果按照编程范例进行排序,命令式语言需要最少的内存,其次是面向对象、函数式,最后是脚本语言。
那么,是否可以综合能源消耗、时间和内存使用选择一种编程语言呢? 当然可以,C语言是所有领域的明显赢家。但如果你对C语言编程不感兴趣,那么有一些有趣的选择。
Go和Pascal在效率测试中做的相当差,但如果你只是考虑基于能源消耗和内存,他们会做得很好。对于有兴趣改善能源和内存的人,Rust和FORTRAN也是不错的选择。
测试代码真正的效率
研究人员在GitHub上贡献了一个项目(开源地址:https://github.com/greensoftwarelab/Energy-Languages),可以用来评估你的代码,看它是否高效,只需要三个简单的步骤:
创建一个名称为“基准”的文件夹,例如test-benchmark,在你实现的编程语言里面。
按照操作部分中的说明,填写Makefile。
使用compile_all.pyscript来编译,运行或测试你想要的内容!或者使用make命令运行它。
你怎么看这一项研究,会改变你对编程语言的选择吗?
猜你喜欢
- 2024-09-09 编程语言:Java的基本语法(编程语言:java的基本语法是)
- 2024-09-09 编程语言:C语言与Java的细致对比,你知道选谁了吗?
- 2024-09-09 从雏鸟起飞之Java篇:第一章Java概述 第二节Java编程语言完整历史
- 2024-09-09 Java、Python、C语言?5大热门编程语言,我该怎么选?
- 2024-09-09 为了写这篇文章,我学了 20 种编程语言!
- 2024-09-09 Python抢下Java“宝座”,成为第二热门编程语言
- 2024-09-09 Python超越Java,成为第二编程语言。登顶榜首,指日可待
- 2024-09-09 世界10大编程语言,Java能一直当大哥吗?
- 2024-09-09 9月编程语言排行榜出炉,被唱衰的Java语言依旧很强势!
- 2024-09-09 在编程世界中,Java作为一种广泛应用的编程语言
你 发表评论:
欢迎- 最近发表
- 标签列表
-
- java反编译工具 (77)
- java反射 (57)
- java接口 (61)
- java随机数 (63)
- java7下载 (59)
- java数据结构 (61)
- java 三目运算符 (65)
- java对象转map (63)
- Java继承 (69)
- java字符串替换 (60)
- 快速排序java (59)
- java并发编程 (58)
- java api文档 (60)
- centos安装java (57)
- java调用webservice接口 (61)
- java深拷贝 (61)
- 工厂模式java (59)
- java代理模式 (59)
- java.lang (57)
- java连接mysql数据库 (67)
- java重载 (68)
- java 循环语句 (66)
- java反序列化 (58)
- java时间函数 (60)
- java是值传递还是引用传递 (62)
本文暂时没有评论,来添加一个吧(●'◡'●)