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