歡迎來到培訓(xùn)無憂網(wǎng)!
咨詢熱線 400-001-5729
2021-12-26 21:34:34|已瀏覽:260次
提到編程語言,人們第一時(shí)間想到的無非是:哪個(gè)編程語言簡單易學(xué),亦或是最掙錢等。但是編程語言功耗問題卻被很多人忽視。那么作為程序員的我們?nèi)绾芜x擇編程語言,使其以低能耗高功效地工作呢?
2017年,葡萄牙大學(xué)的研究人員團(tuán)隊(duì)曾發(fā)表過一篇題為《各種編程語言的能耗》的論文,他們比較了各個(gè)編程語言(及其編譯器/解釋器)的能耗,為此他們研究了 27 種知名編程語言的運(yùn)行時(shí)、內(nèi)存使用情況以及能耗。最后,C 成為了無可爭議的贏家,其能耗最低,而 Python 和 Perl 則處于最末位。
據(jù)悉,這項(xiàng)研究采用了多種方法論和多個(gè)基準(zhǔn)測試。每種語言使用十個(gè)編程問題來進(jìn)行調(diào)查,幫助研究人員獲得更具有可比性、代表性和廣泛性的程序,以及編譯/執(zhí)行選項(xiàng)和編譯器版本。
C /C++能耗最低且最快
盡管人們普遍認(rèn)為程序運(yùn)行速度更快時(shí)能源消耗會隨之降低,但論文中明確指出“更快的語言并不總是最節(jié)能的”,強(qiáng)調(diào)這并不像 E(nergy) = T(ime) x P(ower) 的物理定律那么簡單。
比如在他們的一項(xiàng)基準(zhǔn)測試中,Chapel 程序的執(zhí)行時(shí)間比用 Pascal 編寫的等效程序少 55%——但 Pascal 程序使用的能量少 10%。
在人們傳統(tǒng)印象中,編譯語言“往往”是最節(jié)能、運(yùn)行速度最快的。首先我們來看一看編譯語言在二叉樹測試上的結(jié)果。
不出意料,這項(xiàng)研究得出的結(jié)論為:編譯語言是最快和最節(jié)能的語言。C 和 C++ 語言是能耗最低且最快的語言。Go 是編譯語言中表現(xiàn)最差的語言,甚至比依賴虛擬機(jī)的 Java 或 Erlang 等還要糟糕,至少在二叉樹的測試中是這樣。
Perl、Lua 和 Python能耗高
下面看一下解釋型語言在速度與能耗方面的表現(xiàn),由測試可知解釋型語言才是能耗最高的語言,比如 Perl、Lua 和 Python。
而5 種最慢的語言也是解釋型語言,如:Lua、Python、Perl、Ruby 和 Type。但在使用正則表達(dá)式操作字符串時(shí),5 種最節(jié)能的語言中有三種解釋型語言,分別是 TypeScript、JavaScript 和 PHP。
請注意,所有測試都是在如下環(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)可能不會那么糟糕。
此外,這項(xiàng)研究還根據(jù)時(shí)間、內(nèi)存和能耗參數(shù)的不同目標(biāo)組合,對每種語言進(jìn)行了排名,而在這些指標(biāo)中 C 語言始終名列前茅。這與人們長久以來的認(rèn)知相同,如果你想優(yōu)化程序,提高續(xù)航時(shí)間,降低功耗,則 C 語言絕對是最佳選擇、匯編語言、SIMD 指令或加速器的自定義指令優(yōu)化某些例程。
本文由培訓(xùn)無憂網(wǎng)北京達(dá)內(nèi)教育課程顧問老師整理發(fā)布,更多C語言培訓(xùn)課程信息可關(guān)注培訓(xùn)無憂網(wǎng)C語言培訓(xùn)頻道或添加老師微信:15033336050
注:尊重原創(chuàng)文章,轉(zhuǎn)載請注明出處和鏈接 http://www.dedgn.cn/news-id-10118.html 違者必究!部分文章來源于網(wǎng)絡(luò)由培訓(xùn)無憂網(wǎng)編輯部人員整理發(fā)布,內(nèi)容真實(shí)性請自行核實(shí)或聯(lián)系我們,了解更多相關(guān)資訊請關(guān)注c語言頻道查看更多,了解相關(guān)專業(yè)課程信息您可在線咨詢也可免費(fèi)申請?jiān)囌n。關(guān)注官方微信了解更多:150 3333 6050