日本黄色一级经典视频|伊人久久精品视频|亚洲黄色色周成人视频九九九|av免费网址黄色小短片|黄色Av无码亚洲成年人|亚洲1区2区3区无码|真人黄片免费观看|无码一级小说欧美日免费三级|日韩中文字幕91在线看|精品久久久无码中文字幕边打电话

當前位置:首頁 > > 嵌入式微處理器
[導讀]上次跟大家分享了即將淘汰的編程語言,看來大家對于編程語言的好壞,都很有自己的見解啊。但我們一直都說哈,每個語言都有自己的優(yōu)勢。那今天我們再引入一個比較的概念——耗電量。


上次跟大家分享了即將淘汰的編程語言,看來大家對于編程語言的好壞,都很有自己的見解啊。


但我們一直都說哈,每個語言都有自己的優(yōu)勢。


那今天我們再引入一個比較的概念——耗電量。


在手機快沒電時,管理軟件往往會提醒我們關掉某些耗電量高的應用。


可見,除了硬件廠商外,軟件廠商也應該重視能耗問題。(企業(yè)級需求?。?/span>


咱們今天就看一篇文章,在這篇文章中,研究者分析了一下各種編程語言的能耗對比。



當能耗也成為了一個重要指標,我們要怎么選擇編程語言?


2017 年,由 6 名葡萄牙研究者組成的團隊決定對這一問題進行調查并發(fā)表了一篇名為《Energy Efficiency Across Programming Languages》的論文。


他們用 27 種語言寫出了 10 個問題的解決方案(遵循同樣的算法),然后運行這些方案,記錄每種編程語言消耗的電量以及速度和內存使用情況,得到的排序結果如下圖所示:



通過這項研究,他們得出了一些有意思的結論,比如運行速度快的語言未必能耗小。


在論文中,作者還根據編程語言的執(zhí)行類型(編譯、虛擬機或解釋)和編程范式(命令式、函數式、面向對象和腳本)對結果進行了分析。


具體而言,研究者使用了來自 Computer Language Benchmarks Game(一個用于比較性能的免費軟件項目,其中包含一組標準的算法問題和用于運行測試的框架)的 10 個問題,使得研究更有可比性和代表性。


運行各種基準測試非常重要,因為它們的結果會由于所執(zhí)行的測試而有所不同。


例如,總體而言,C 語言被認為是最快的,也是最節(jié)能的。


大家把C語言牛皮,打在公(評)屏(論)上(區(qū))!



但是在涉及掃描 DNA 數據庫中特定基因序列的基準測試中,Rust 是最節(jié)能的,而 C 語言位居第三。


所以即使在同一測試中,最佳語言依然取決于你的標準。

比如在一個 C 排第二、Rust 排第一的測試中,如果按內存使用情況對結果進行排序,Rust 會跌掉 9 個位次。


而在一個 Fortran 能效第二高的測試中,如果結果按照運行時間排序,它也下降了 6 個位次。

研究者指出,他們嚴格遵守 CLBG 項目關于編譯器版本和最佳優(yōu)化標志的指導方針。


功耗的測量使用一個來自英特爾的工具——Running Average Power Limit,每個程序運行 10 遍。


作者表示:

這是為了減少冷啟動和緩存效應的影響,并能夠分析測量的一致性,避免異常值。

為了增強一致性,所有測試都在一個運行 Linux Ubuntu Server 16.10(內核版本 4.8.0-22-generic)的臺式機上運行。


運行速度快的語言更節(jié)能嗎?


這篇論文認真地研究了一個普遍的假設:速度越快的程序消耗的能源就越少。


研究者指出,其實,這并不像物理學定律 E(nergy) = T(ime) x P(ower) 那么簡單。


這是因為電力并不按照一定的速率進行消耗。


在其他研究者的一項研究中,一個 Chapel 程序的運行時間比另一個用 Pascal 寫的等價程序少 55%,但測量結果卻表明,那個 Pascal 程序所用的能量反而要少10%。


因此,盡管普遍認為程序運行速度更快時能耗會下降,但研究者明確指出:


速度更快的語言并不總是更節(jié)能。

這可能是一個很難回答的問題,因為功耗受到許多因素的影響(包括編譯器的質量和使用的庫)。


但最終,研究人員總結出,無論是編譯型語言、解釋型語言還是虛擬機,其實大部分能量(平均 88% 左右)是由 CPU 消耗的。


在對實驗結果分析研究之后,研究者還得出結論:


DRAM 的峰值使用量與能耗之間幾乎沒有關系。

該研究為一個長期存在的問題提供了答案:「速度更快就更環(huán)保嗎?」


在按照執(zhí)行時間進行排序時,的確是這樣,前 5 種最節(jié)能的語言依然排在前 5 名,而且在能量和時間值方面的差距很小。


實際上,在 10 個基準問題測試中,有 9 個得分最高者(速度和能源效率兩方面)是速度最快和能源效率最高的三種語言之一,這并沒有讓研究者感到驚訝。


眾所周知,就像研究中的數據所顯示的一樣,C、C++ 和 Rust 這三種排名最靠前的語言都經過了大量優(yōu)化,在執(zhí)行性能上都比較高效。



但是按照運行時間對其他 24 種語言進行排名時,情況就不一樣了。


只有 4 種語言保持相同的能耗和時間排名(OCaml、Haskel、Racket 和 Python),而其余語言則徹底散開。


即使在單項基準測試中,也存在速度快但不節(jié)能的語言。


編譯型語言的優(yōu)點


編譯型語言似乎是最節(jié)能和運行最快的語言,作者甚至可以在論文中用數字量化這種差異。


平均而言,編譯語言需要花費 120J 能量來運行解決方案,而虛擬機和解釋型語言要分別花費 576J 和 2365J。


在比較執(zhí)行時間時,研究者也采用了相同的精度,得出的結論是:

平均而言,編譯語言花費 5103 毫秒,虛擬機語言花費 20623 毫秒,解釋型語言花費 87614 毫秒。

兩項排名中的前 4 名均為編譯型語言(有一個例外,Java 語言)。



5 種最慢的語言都是解釋型語言:



Lua、Python、Perl、Ruby 和 Typescript。


5 種能耗最多的語言也都是解釋型語言:



Perl、Python、Ruby、JRuby 和 Lua。


但同時,在使用正則表達式操作字符串時,5 種最節(jié)能的語言中有三種(TypeScript、JavaScript 和 PHP)是解釋型語言。


但是在其他情況下,它們往往不是很節(jié)能。


編譯型語言在占用內存最少的排名中也占據了前 5 名。



研究者稱:

平均而言,編譯語言需要 125Mb,虛擬機語言需要 285Mb,而解釋語言則需要 426Mb。

具體來說,有 4 種解釋型語言在這項排名中墊底,這意味著它們消耗了最多的內存空間。

如果按照它們的編程范式進行排序,命令式語言需要 116Mb,面向對象語言需要 249Mb,函數式編程語言是 251Mb,腳本需要 421Mb。

實際上,當比較不同范式時,命令式編程通常排在首位。


與面向對象、函數式以及腳本范式的基準程序相比,命令式編程的基準程序平均使用的能源少得多,運行速度也更快。



但是有很多因素需要考慮。


研究者稱

很顯然,不同的編程范式,甚至同一范式中的語言對能耗、時間、內存的影響也完全不同。

但是,其中哪一個因素最重要取決于你自己的需求情況(例如,后臺任務并不總是需要最快的運行時間)。


某些應用程序需要同時考慮兩個因素,如能耗和執(zhí)行時間。


研究者稱:

在這樣的情況下,C 語言是最佳的解決方案,因為它在這兩個方面都很有優(yōu)勢。

如果你想在節(jié)省內存的同時節(jié)省時間,那么 C 語言、Pascal 和 Go 語言都可以。


如果你正在觀察 3 個變量(時間、能耗和內存使用情況),那么結論也是一樣的。


但是,如果你只是想在使用更少內存的同時節(jié)省能源,那么最好的選擇是 C 語言或 Pascal。



總結一下:


不同的模式,考察角度不一樣,得出的結論也會有差距,一門語言好不好還是要根據自己的業(yè)務實際需求去判斷。


但是,C語言就是最厲害的!


END

來源:老九學堂

版權歸原作者所有,如有侵權,請聯(lián)系刪除。

推薦閱讀

成功為華為“續(xù)命:中國芯片之父張汝京

一個工程師的“噩夢”:剛分清CPU和GPU,卻發(fā)現(xiàn)還有……

這位“華為天才少年”,竟然要我用“充電寶”打《只狼》


免責聲明:本文內容由21ic獲得授權后發(fā)布,版權歸原作者所有,本平臺僅提供信息存儲服務。文章僅代表作者個人觀點,不代表本平臺立場,如有問題,請聯(lián)系我們,謝謝!

嵌入式ARM

掃描二維碼,關注更多精彩內容

本站聲明: 本文章由作者或相關機構授權發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內容真實性等。需要轉載請聯(lián)系該專欄作者,如若文章內容侵犯您的權益,請及時聯(lián)系本站刪除。
換一批
延伸閱讀

LED驅動電源的輸入包括高壓工頻交流(即市電)、低壓直流、高壓直流、低壓高頻交流(如電子變壓器的輸出)等。

關鍵字: 驅動電源

在工業(yè)自動化蓬勃發(fā)展的當下,工業(yè)電機作為核心動力設備,其驅動電源的性能直接關系到整個系統(tǒng)的穩(wěn)定性和可靠性。其中,反電動勢抑制與過流保護是驅動電源設計中至關重要的兩個環(huán)節(jié),集成化方案的設計成為提升電機驅動性能的關鍵。

關鍵字: 工業(yè)電機 驅動電源

LED 驅動電源作為 LED 照明系統(tǒng)的 “心臟”,其穩(wěn)定性直接決定了整個照明設備的使用壽命。然而,在實際應用中,LED 驅動電源易損壞的問題卻十分常見,不僅增加了維護成本,還影響了用戶體驗。要解決這一問題,需從設計、生...

關鍵字: 驅動電源 照明系統(tǒng) 散熱

根據LED驅動電源的公式,電感內電流波動大小和電感值成反比,輸出紋波和輸出電容值成反比。所以加大電感值和輸出電容值可以減小紋波。

關鍵字: LED 設計 驅動電源

電動汽車(EV)作為新能源汽車的重要代表,正逐漸成為全球汽車產業(yè)的重要發(fā)展方向。電動汽車的核心技術之一是電機驅動控制系統(tǒng),而絕緣柵雙極型晶體管(IGBT)作為電機驅動系統(tǒng)中的關鍵元件,其性能直接影響到電動汽車的動力性能和...

關鍵字: 電動汽車 新能源 驅動電源

在現(xiàn)代城市建設中,街道及停車場照明作為基礎設施的重要組成部分,其質量和效率直接關系到城市的公共安全、居民生活質量和能源利用效率。隨著科技的進步,高亮度白光發(fā)光二極管(LED)因其獨特的優(yōu)勢逐漸取代傳統(tǒng)光源,成為大功率區(qū)域...

關鍵字: 發(fā)光二極管 驅動電源 LED

LED通用照明設計工程師會遇到許多挑戰(zhàn),如功率密度、功率因數校正(PFC)、空間受限和可靠性等。

關鍵字: LED 驅動電源 功率因數校正

在LED照明技術日益普及的今天,LED驅動電源的電磁干擾(EMI)問題成為了一個不可忽視的挑戰(zhàn)。電磁干擾不僅會影響LED燈具的正常工作,還可能對周圍電子設備造成不利影響,甚至引發(fā)系統(tǒng)故障。因此,采取有效的硬件措施來解決L...

關鍵字: LED照明技術 電磁干擾 驅動電源

開關電源具有效率高的特性,而且開關電源的變壓器體積比串聯(lián)穩(wěn)壓型電源的要小得多,電源電路比較整潔,整機重量也有所下降,所以,現(xiàn)在的LED驅動電源

關鍵字: LED 驅動電源 開關電源

LED驅動電源是把電源供應轉換為特定的電壓電流以驅動LED發(fā)光的電壓轉換器,通常情況下:LED驅動電源的輸入包括高壓工頻交流(即市電)、低壓直流、高壓直流、低壓高頻交流(如電子變壓器的輸出)等。

關鍵字: LED 隧道燈 驅動電源
關閉