[導(dǎo)讀]作者|?JEAN-LUCAUFRANC譯者|彎月出品|CSDN(ID:CSDNnews)提到編程語言,人們第一時(shí)間想到的無非是:哪個(gè)編程語言簡(jiǎn)單易學(xué),亦或是最掙錢等。但是編程語言功耗問題卻被很多人忽視。那么作為程序員的我們?nèi)绾芜x擇編程語言,使其以低能耗高功效地工作呢?2017年,...
作者 | JEAN-LUC AUFRANC
譯者 | 彎月
出品 | CSDN(ID:CSDNnews)提到編程語言,人們第一時(shí)間想到的無非是:哪個(gè)編程語言簡(jiǎn)單易學(xué),亦或是最掙錢等。但是編程語言功耗問題卻被很多人忽視。那么作為程序員的我們?nèi)绾芜x擇編程語言,使其以低能耗高功效地工作呢?2017年,葡萄牙大學(xué)的研究人員團(tuán)隊(duì)曾發(fā)表過一篇題為《各種編程語言的能耗》的論文,他們比較了各個(gè)編程語言(及其編譯器/解釋器)的能耗,為此他們研究了 27 種知名編程語言的運(yùn)行時(shí)、內(nèi)存使用情況以及能耗。最后,C 成為了無可爭(zhēng)議的贏家,其能耗最低,而 Python 和 Perl 則處于最末位。據(jù)悉,這項(xiàng)研究采用了多種方法論和多個(gè)基準(zhǔn)測(cè)試。每種語言使用十個(gè)編程問題來進(jìn)行調(diào)查,幫助研究人員獲得更具有可比性、代表性和廣泛性的程序,以及編譯/執(zhí)行選項(xiàng)和編譯器版本。
C /C 能耗最低且最快
盡管人們普遍認(rèn)為程序運(yùn)行速度更快時(shí)能源消耗會(huì)隨之降低,但論文中明確指出“更快的語言并不總是最節(jié)能的”,強(qiáng)調(diào)這并不像 E(nergy) = T(ime) x P(ower) 的物理定律那么簡(jiǎn)單。
比如在他們的一項(xiàng)基準(zhǔn)測(cè)試中,Chapel 程序的執(zhí)行時(shí)間比用 Pascal 編寫的等效程序少 55%——但 Pascal 程序使用的能量少 10%。
在人們傳統(tǒng)印象中,編譯語言“往往”是最節(jié)能、運(yùn)行速度最快的。首先我們來看一看編譯語言在二叉樹測(cè)試上的結(jié)果。
不出意料,這項(xiàng)研究得出的結(jié)論為:編譯語言是最快和最節(jié)能的語言。C 和 C 語言是能耗最低且最快的語言。Go 是編譯語言中表現(xiàn)最差的語言,甚至比依賴虛擬機(jī)的 Java 或 Erlang 等還要糟糕,至少在二叉樹的測(cè)試中是這樣。
Perl、Lua 和 Python能耗高
下面看一下解釋型語言在速度與能耗方面的表現(xiàn),由測(cè)試可知解釋型語言才是能耗最高的語言,比如 Perl、Lua 和 Python。
而5 種最慢的語言也是解釋型語言,如:Lua、Python、Perl、Ruby 和 Type。但在使用正則表達(dá)式操作字符串時(shí),5 種最節(jié)能的語言中有三種解釋型語言,分別是 TypeScript、JavaScript 和 PHP。
請(qǐng)注意,所有測(cè)試都是在如下環(huán)境運(yùn)行:Intel Core i5-4460 Haswell CPU @ 3.20GHz,16GBRAM,Ubuntu Server 16.10 操作系統(tǒng)和Linux 4.8.0-22??紤]到如今 MicroPyhon 可以在各種微控制器上運(yùn)行,猜它在體積更小的設(shè)備上的表現(xiàn)可能不會(huì)那么糟糕。此外,這項(xiàng)研究還根據(jù)時(shí)間、內(nèi)存和能耗參數(shù)的不同目標(biāo)組合,對(duì)每種語言進(jìn)行了排名,而在這些指標(biāo)中 C 語言始終名列前茅。這與人們長(zhǎng)久以來的認(rèn)知相同,如果你想優(yōu)化程序,提高續(xù)航時(shí)間,降低功耗,則 C 語言絕對(duì)是最佳選擇、匯編語言、SIMD 指令或加速器的自定義指令優(yōu)化某些例程。參考鏈接:
-
https://www.cnx-software.com/2021/11/18/save-the-planet-program-in-c-avoid-python-perl/
-END-
欲知詳情,請(qǐng)下載word文檔
下載文檔
本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除。
本文轉(zhuǎn)自公眾號(hào)“CSDN”,ID:CSDNnews)作者?|?Serdar?Yegulalp?譯者?|?王艷妮,責(zé)編?|?屠敏C語言五十年來一直是軟件開發(fā)的一種主力語言。以下是它在如今的2019年與C,Java,C#,G...
關(guān)鍵字:
編程語言
PYTHON
GO
NET
“驗(yàn)證很多人都清楚,驗(yàn)證技術(shù)一直在發(fā)展,個(gè)人技術(shù)成長(zhǎng)不進(jìn)則退。于是采用最新的驗(yàn)證方法和趨勢(shì)是很多驗(yàn)證牛人趨之若鶩的事情。一旦驗(yàn)證大佬嘗試了某個(gè)事情,可能很快就會(huì)在團(tuán)隊(duì)傳播起來,這就是偶像效應(yīng)。這時(shí)候,這項(xiàng)技術(shù)仿佛就是經(jīng)過...
關(guān)鍵字:
BUG
EDA
VERILOG
編程語言
本文轉(zhuǎn)自公眾號(hào)“CSDN”,ID:CSDNnews)作者?|?Serdar?Yegulalp?譯者?|?王艷妮,責(zé)編?|?屠敏C語言五十年來一直是軟件開發(fā)的一種主力語言。以下是它在如今的2019年與C,Java,C#,G...
關(guān)鍵字:
編程語言
準(zhǔn)備好與Arduino嘗試不同的東西了嗎?您不必局限于用C編程。將這些替代語言用于測(cè)試驅(qū)動(dòng)器。
關(guān)鍵字:
Arduino
編程語言
素材來源|?CSDN,排版|嵌入式專欄C語言的發(fā)展有五十多年了,在所有高級(jí)編程語言中,C語言屬于元老級(jí)別。在過去,TIOBE編程語言排行榜中,C語言只有被JAVA超越過,不過近兩年,C語言穩(wěn)穩(wěn)的排名第一,在這9月的排行中...
關(guān)鍵字:
C語言
編程語言
大家好,我是張巧龍,今天和大家聊聊一門新興國產(chǎn)編程語言—Go,/*聲明*/每個(gè)編程語言都有其優(yōu)缺點(diǎn),本文并未通過貶低其他編程語言來凸顯Go的優(yōu)勢(shì),相反,Go也有其缺點(diǎn)。01?什么是Go?Go(又稱Golang)是Goog...
關(guān)鍵字:
編程語言
素材來源|?CSDN,排版|嵌入式專欄C語言的發(fā)展有五十多年了,在所有高級(jí)編程語言中,C語言屬于元老級(jí)別。在過去,TIOBE編程語言排行榜中,C語言只有被JAVA超越過,不過近兩年,C語言穩(wěn)穩(wěn)的排名第一,在這9月的排行中...
關(guān)鍵字:
C語言
編程語言
昨天(10月22日)下午,在華為開發(fā)者大會(huì)2021(Together)上,HarmonyOS3開發(fā)者預(yù)覽版正式發(fā)布。同時(shí),華為消費(fèi)者業(yè)務(wù)軟件部總裁龔體表示,在不久的將來,華為將發(fā)布為HarmonyOS全新研發(fā)的編程語言,...
關(guān)鍵字:
華為
編程語言
鴻蒙
據(jù)華為終端官微,在今天下午的HDC2021(華為開發(fā)者大會(huì))上,華為透露將發(fā)布自研鴻蒙編程語言,為鴻蒙生態(tài)基礎(chǔ)設(shè)施建設(shè)補(bǔ)上最后一環(huán)。預(yù)計(jì)這款編程語言將是HarmonyOS3的重要支撐,也將為未來鴻蒙生態(tài)的完善添磚加瓦。按...
關(guān)鍵字:
華為
編程語言
鴻蒙
據(jù)華為終端官微,在10月22日下午的HDC2021(華為開發(fā)者大會(huì))上,華為透露將發(fā)布自研鴻蒙編程語言,為鴻蒙生態(tài)基礎(chǔ)設(shè)施建設(shè)補(bǔ)上最后一環(huán)。
關(guān)鍵字:
華為
HarmonyOS3
編程語言
來自電腦報(bào)日前,華為在全聯(lián)接大會(huì)上發(fā)布了全新操作系統(tǒng)“openEuler歐拉”。據(jù)介紹,在ICT領(lǐng)域,華為提供服務(wù)器、存儲(chǔ)、云服務(wù)、邊緣計(jì)算、基站、路由器、工業(yè)控制等產(chǎn)品和解決方案,都需要搭載操作系統(tǒng)。但目前的操作系統(tǒng)太...
關(guān)鍵字:
鴻蒙
編程語言
操作系統(tǒng)
FPGA開發(fā)使用的是硬件描述語言(HardwareDescriptionLanguage,HDL)或者是寄存器傳輸級(jí)語言(RegisterTransferLanguage,RTL),它是用來描述數(shù)字電路功能和行為的語言,...
關(guān)鍵字:
FPGA
編程語言
今天分享一篇關(guān)于C語言為何如此有魅力的文章,如果你還在學(xué)習(xí)哪門語言的路口抉擇,建議可以認(rèn)真看看~以下為CSDN譯文:沒有什么技術(shù)可以應(yīng)用長(zhǎng)達(dá)50年之久,除非它真的比大多數(shù)其他東西都要好用——對(duì)于一種計(jì)算機(jī)行業(yè)的技術(shù)來說尤...
關(guān)鍵字:
C語言
編程語言
自從編程語言誕生以來,人們常常就哪種語言速度最快的問題爭(zhēng)論不休。無論是嚴(yán)肅的科學(xué)研究,還是深夜酒吧的喧囂,都不乏關(guān)于這個(gè)話題的爭(zhēng)執(zhí)。文本不打算就這個(gè)問題展開討論,我們不妨從一個(gè)更高的層面來看一看這個(gè)問題:如何比較兩種截然...
關(guān)鍵字:
編程語言
IEEESpectrum2021年度編程語言排行榜現(xiàn)已發(fā)布。該榜單一年發(fā)布一次,今年是其發(fā)布的第八年。今年的排行榜包含55種語言,其排序綜合8個(gè)重要線上數(shù)據(jù)源的11個(gè)指標(biāo)而成,例如CareerBuilder、GitHub...
關(guān)鍵字:
編程語言
前幾日,TIOBE官方最新發(fā)布了8月的編程語言榜單:??除了“常青樹”C語言以外,其他語言的排名及變化同樣值得關(guān)注:?Java依舊流行,因?yàn)樗且环N面向?qū)ο蟮恼Z言,常用在Android應(yīng)用程序開發(fā),所以目前仍被許多大公司...
關(guān)鍵字:
編程語言
給大家看個(gè)有意思的榜單。前幾日,TIOBE官方最新發(fā)布了8月的編程語言榜單:??除了“常青樹”C語言以外,其他語言的排名及變化同樣值得關(guān)注:?Java依舊流行,因?yàn)樗且环N面向?qū)ο蟮恼Z言,常用在Android應(yīng)用程序開發(fā)...
關(guān)鍵字:
編程語言
先拋結(jié)論:這份報(bào)告,含金量很足,請(qǐng)認(rèn)真研讀:)剛剛,騰訊正式對(duì)外發(fā)布2020年度《騰訊研發(fā)大數(shù)據(jù)報(bào)告》,這份由騰訊技術(shù)委員會(huì)出品的報(bào)告,披露了過去一年騰訊在研發(fā)投入、研發(fā)效能及開源協(xié)同等方面的重要數(shù)據(jù)。大家普...
關(guān)鍵字:
騰訊
編程語言