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