摘要:提到編程語言,人們第一時間想到的無非是哪個編程語言簡單易學(xué),亦或是最掙錢等。但是編程語言功耗問題卻被很多人忽視。盡管每個基準(zhǔn)測試中最節(jié)能的語言幾乎總是最快,沒有哪一種語言是經(jīng)久不衰,可以永遠(yuǎn)好過其他編程語言的。
提到編程語言,人們第一時間想到的無非是:哪個編程語言簡單易學(xué),亦或是最掙錢等。但是編程語言功耗問題卻被很多人忽視。那么作為程序員的我們?nèi)绾芜x擇編程語言,使其以低能耗高功效地工作呢?
對于以上問題,葡萄牙大學(xué)的研究人員于2017年發(fā)表了一篇研究論文《Energy Efficiency across Programming Languages》,對 27 種知名軟件語言的運行速度、內(nèi)存使用和能耗進行了研究,結(jié)果表明 C 語言依舊寶刀未老,憑借其精確的內(nèi)存管理,輕量的設(shè)計模式,榮獲“最環(huán)?!钡木幊陶Z言的稱號。
據(jù)悉,研究人員基于 Computer Language Benchmarks Game標(biāo)準(zhǔn)對每種語言使用十個編程問題來進行調(diào)查,幫助研究人員獲得更具有可比性、代表性和廣泛性的程序,以及編譯/執(zhí)行選項和編譯器版本。Computer Language Benchmarks GameComputer 是一個用于比較性能的免費軟件項目,其中包含一組標(biāo)準(zhǔn)的算法問題和用于運行測試的框架。
此外,研究人員表示運行各種基準(zhǔn)測試非常重要,因為它們的結(jié)果會由于所執(zhí)行的測試而有所不同。即使在同一測試中,「最佳」語言也取決于測試者的標(biāo)準(zhǔn)是什么。
盡管人們普遍認(rèn)為程序運行速度更快時能源消耗會隨之降低,但論文中明確指出“更快的語言并不總是最節(jié)能的”,強調(diào)這并不像 E(nergy) = T(ime) x P(ower) 的物理定律那么簡單。
比如在他們的一項基準(zhǔn)測試中,Chapel 程序的執(zhí)行時間比用 Pascal 編寫的等效程序少 55%——但 Pascal 程序使用的能量少 10%。
在人們傳統(tǒng)印象中,編譯語言“往往”是最節(jié)能、運行速度最快的。對此研究人員用數(shù)字來量化這種差異,結(jié)果表明,編譯語言僅需要花費 120焦耳能量來運行解決方案,而虛擬機和解釋型語言要分別花費 576焦耳 和 2365 焦耳。
而在比較執(zhí)行時間時,研究者也采用了相同的精度,就平均而言,編譯語言花費 5103 毫秒,虛擬機語言花費 20623 毫秒,解釋型語言花費 87614 毫秒。除此之外,編譯語言在內(nèi)存占用方面,也穩(wěn)居前5。
此外研究人員還根據(jù)編程語言的執(zhí)行類型(編譯、虛擬機或解釋)和編程范式(命令式、函數(shù)式、面向?qū)ο蠛湍_本)對結(jié)果進行了分析。
5 種最慢的語言都是解釋型語言:Lua、Python、Perl、Ruby 和 Type。5 種能耗最多的語言也都是解釋型語言:Perl、Python、Ruby、JRuby 和 Lua。。但在使用正則表達(dá)式操作字符串時,5 種最節(jié)能的語言中有三種解釋型語言,分別是 TypeScript、JavaScript 和 PHP。
根據(jù)上圖顯示,如果基于能耗和執(zhí)行時間兩個基準(zhǔn)來看, C 語言是最佳的解決方案。如果用戶想在節(jié)省內(nèi)存的同時還能更快地執(zhí)行,那么 C 語言、Pascal 和 Go 語言是不錯的選擇。總的來說,如果用戶只是想在使用更少內(nèi)存的同時節(jié)省能源,那么最好的選擇是 C 語言或 Pascal。
最后研究人員總結(jié)道:“如果你正在尋找一種最好的編程語言,這個問題沒有最終答案。盡管每個基準(zhǔn)測試中最節(jié)能的語言幾乎總是最快,沒有哪一種語言是經(jīng)久不衰,可以永遠(yuǎn)好過其他編程語言的。
參考鏈接:
- https://thenewstack.io/which-programming-languages-use-the-least-electricity/
- https://hackaday.com/2021/11/18/c-is-the-greenest-programming-language/
論文鏈接:
- https://greenlab.di.uminho.pt/wp-content/uploads/2017/10/sleFinal.pdf?utm_source=thenewstack&utm_medium=website&utm_campaign=platform
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/124785.html
摘要:美國互聯(lián)網(wǎng)巨頭谷歌宣布將在新加坡建立第三個數(shù)據(jù)中心,以擴大其云平臺業(yè)務(wù)能力,主要用于服務(wù)東南亞地區(qū)用戶。該數(shù)據(jù)中心計劃于年啟動并運行。谷歌表示將投資億美元用于建立新的數(shù)據(jù)中心,此次擴張將使其在新加坡數(shù)據(jù)中心的總投資達(dá)到億美元。美國互聯(lián)網(wǎng)巨頭谷歌宣布將在新加坡建立第三個數(shù)據(jù)中心,以擴大其Google云平臺(GCP)業(yè)務(wù)能力,主要用于服務(wù)東南亞地區(qū)用戶。該數(shù)據(jù)中心計劃于2020年啟動并運行。今日...
摘要:日前據(jù)悉,分布?xì)W洲各國的五個數(shù)據(jù)中心最近被授予數(shù)據(jù)中心節(jié)能認(rèn)證證書,這個認(rèn)證旨在減少數(shù)據(jù)中心浪費并有效運營??偛吭谥辈剂_陀的托管數(shù)據(jù)中心服務(wù)商公司在其獲得認(rèn)證的數(shù)據(jù)中心采用了高效節(jié)能措施,取得了良好的效果,因此獲得了該公司第二個認(rèn)證。日前據(jù)悉,分布?xì)W洲各國的五個數(shù)據(jù)中心最近被授予數(shù)據(jù)中心節(jié)能認(rèn)證(CEEDA)證書,這個認(rèn)證旨在減少數(shù)據(jù)中心浪費并有效運營。這些設(shè)施包括在瑞典、德國、英屬直布羅陀...
摘要:友情提示先關(guān)注收藏,再查看,萬字保姆級語言從入門到精通教程。及大牛出天地開始有隨之乃有萬種語年英國劍橋大學(xué)推出了語言。 友情提示:先關(guān)注收藏,再查看,13 萬字保...
目錄 一、什么是C語言? 二、第一個C語言程序 代碼 程序分析 ?程序運行 一個工程中出現(xiàn)兩個及以上的main函數(shù) 代碼 運行結(jié)果 分析 三、數(shù)據(jù)類型 數(shù)據(jù)各種類型 為什么會有這么多的數(shù)據(jù)類型? 計算機單位 ?各個數(shù)據(jù)類型的大小 ?注意事項 數(shù)據(jù)類型的使用 四、變量和常量 變量的分類 變量的使用 變量的作用域和生命周期 ?常量 五、字符串+轉(zhuǎn)義字符+注釋 字符串 ?轉(zhuǎn)義字符 注釋 六、選擇語句 ?...
摘要:嵌入式開發(fā)是在操作系統(tǒng)內(nèi)部做開發(fā)的,而操作系統(tǒng)所有的內(nèi)核都是語言所編寫的,所以說在嵌入式開發(fā)的過程中也選擇語言,肯定是具有一定的優(yōu)勢的。 嵌入式開發(fā)是一項系統(tǒng)工程,因此要求嵌入式系統(tǒng)廠商不僅要提供嵌入式軟硬件系統(tǒng)本身,同時還需要提供強大的硬件開發(fā)工具和軟件包支持,以方便用戶以最低的成本、最短...
閱讀 1527·2021-11-24 09:38
閱讀 3375·2021-11-18 10:02
閱讀 3265·2021-09-22 15:29
閱讀 2949·2021-09-22 15:15
閱讀 1053·2021-09-13 10:25
閱讀 1868·2021-08-17 10:13
閱讀 2002·2021-08-04 11:13
閱讀 1984·2019-08-30 15:54