AVt天堂网 手机版,亚洲va久久久噜噜噜久久4399,天天综合亚洲色在线精品,亚洲一级Av无码毛片久久精品

當前位置:首頁 > 科技  > 軟件

哪種編程語言最省電?以及,編程質量與耗電多少有關?

來源: 責編: 時間:2024-06-20 15:17:40 108觀看
導讀編譯 | 伊風出品 | 51CTO技術棧(微信號:blog51cto)能量使用數據是否能告訴我們編程語言的質量?圖片去年,來自葡萄牙三所不同大學的六名研究人員決定調查這個問題,最終發布了一篇題為《編程語言的能效》的論文。他們在運行用

編譯 | 伊風cRU28資訊網——每日最新資訊28at.com

出品 | 51CTO技術棧(微信號:blog51cto)cRU28資訊網——每日最新資訊28at.com

cRU28資訊網——每日最新資訊28at.com

能量使用數據是否能告訴我們編程語言的質量?cRU28資訊網——每日最新資訊28at.com

cRU28資訊網——每日最新資訊28at.com

圖片圖片cRU28資訊網——每日最新資訊28at.com

cRU28資訊網——每日最新資訊28at.com

去年,來自葡萄牙三所不同大學的六名研究人員決定調查這個問題,最終發布了一篇題為《編程語言的能效》的論文。他們在運行用27種不同語言編寫的10個編程問題的解決方案時,監測了每種語言使用的電量、速度和內存使用情況。cRU28資訊網——每日最新資訊28at.com

cRU28資訊網——每日最新資訊28at.com

圖片圖片cRU28資訊網——每日最新資訊28at.com

cRU28資訊網——每日最新資訊28at.com

更具體的說,他們使用了計算機語言基準游戲(Computer Language Benchmarks Game)的10個問題,這是一個用于比較性能的自由軟件項目,包括一組標準的簡單算法問題以及運行測試的框架。(以前被稱為“大計算機語言對決”。)“這使我們能夠獲得一個可比較、有代表性且廣泛的程序集……以及編譯/執行選項和編譯器版本。”cRU28資訊網——每日最新資訊28at.com

cRU28資訊網——每日最新資訊28at.com

進行各種基準測試是重要的,因為他們的結果最終取決于執行的測試。例如,總體上C語言被證明是最快且最節能的。但在涉及掃描DNA數據庫中特定基因序列的基準測試中,Rust是最節能的——而C排在第三位。   cRU28資訊網——每日最新資訊28at.com

cRU28資訊網——每日最新資訊28at.com

然而,即使在同一測試中,“最佳”語言也取決于你的標準。在該測試中,C也是第二快的語言(再一次排在Rust之后)。但如果按內存使用情況排序,Rust下降了整整九位。而Fortran是該測試中第二節能的語言,但按執行時間排序時也下降了六位。cRU28資訊網——每日最新資訊28at.com

cRU28資訊網——每日最新資訊28at.com

更快的語言并不總是最節能的。cRU28資訊網——每日最新資訊28at.com

cRU28資訊網——每日最新資訊28at.com

研究人員指出,他們“嚴格遵循”CLBG項目關于編譯器版本和最佳優化標志的指南。使用Intel的Running Average Power Limit工具測量功耗,每個程序不僅執行一次,而是執行了10次,“以減少冷啟動和緩存效應的影響,并能夠分析測量結果的一致性,避免異常值。”(因此,他們報告說,“測量結果相當一致。”)為了增加一致性,所有測試都在運行Linux Ubuntu Server 16.10(內核版本4.8.0-22-generic)的臺式機上進行,配有16GB RAM和3.20GHz Haswell Intel Core i5-4460 CPU。cRU28資訊網——每日最新資訊28at.com

cRU28資訊網——每日最新資訊28at.com

在他們的論文中,研究人員指出了一些有趣的結果。cRU28資訊網——每日最新資訊28at.com

cRU28資訊網——每日最新資訊28at.com

“平均而言,Lisp消耗的能量是C的2.27倍(131.34J),執行時間是C的2.44倍(4926.99ms),所需內存是Pascal的1.92倍(126.64Mb)。”cRU28資訊網——每日最新資訊28at.com

cRU28資訊網——每日最新資訊28at.com

他們還比較了編譯語言與解釋語言的結果(還有一個單獨的類別是運行在虛擬機上的語言)。論文還包括了不同編程范式的比較——包括函數式編程和命令式編程,以及面向對象編程和腳本編程。cRU28資訊網——每日最新資訊28at.com

cRU28資訊網——每日最新資訊28at.com

1.更快的語言是否更綠色?

cRU28資訊網——每日最新資訊28at.com

論文仔細研究了一個常見的假設,即更快的程序總是使用更少的能量,指出這并不像物理定律那樣簡單:E(能量)= T(時間)x P(功率)。研究人員指出,這部分是因為功率不是以一致的速率消耗的,這可能影響了其他研究人員關于程序運行時間是否影響能量消耗的工作。(“關于這個問題的結論有時會有所不同……”)在他們的一個基準測試中,一個Chapel程序比一個等效的Pascal程序執行時間減少了55%,但該Pascal程序使用的能量卻少了10%。cRU28資訊網——每日最新資訊28at.com

cRU28資訊網——每日最新資訊28at.com

因此,盡管人們普遍認為程序運行得更快能量消耗會減少,研究人員明確表示,“更快的語言并不總是最節能的。”cRU28資訊網——每日最新資訊28at.com

cRU28資訊網——每日最新資訊28at.com

這可能是一個難以回答的問題,因為功耗受多種因素的影響(包括編譯器的質量和使用的庫)。但最終,研究人員甚至能夠根據功耗是由CPU還是DRAM消耗來分解能量消耗——得出結論,平均而言,無論基準程序是編譯的、解釋的還是在虛擬機上運行的,CPU消耗的功率大約占88%。cRU28資訊網——每日最新資訊28at.com

cRU28資訊網——每日最新資訊28at.com

有趣的是,解釋語言顯示出比較大的變化,CPU有時消耗的功率高達92.90%,有時低至81.57%。cRU28資訊網——每日最新資訊28at.com

cRU28資訊網——每日最新資訊28at.com

在研究結果后,研究人員還得出結論,DRAM峰值使用與能量消耗之間的關系“幾乎不存在”。cRU28資訊網——每日最新資訊28at.com

cRU28資訊網——每日最新資訊28at.com

這項研究為一個長期存在的問題提供了一些見解:更快的語言是否更綠色?是的,事實是,“在前五個最節能的語言中,它們在按執行時間排序時保持了它們的排名,且能量和時間值之間的差異非常小。”cRU28資訊網——每日最新資訊28at.com

cRU28資訊網——每日最新資訊28at.com

實際上,對于10個基準問題中的9個,最高得分(無論是速度還是能效)都來自于三種總體最快和最節能的語言之一——這并沒有讓研究人員感到驚訝。“眾所周知,這三種頂級語言(C、C++和Rust)被認為是高度優化且執行性能高效的,正如我們的數據所示。”cRU28資訊網——每日最新資訊28at.com

cRU28資訊網——每日最新資訊28at.com

但當你按運行時間對其他24種語言進行排序時,你不會看到相同的順序,而按能效排序時也不會。“只有四種語言在能量和時間排名中保持一致(OCaml、Haskell、Racket和Python),而其余的則完全被打亂。”cRU28資訊網——每日最新資訊28at.com

cRU28資訊網——每日最新資訊28at.com

即使在單個基準測試中,也有快速執行的語言并不是最節能的情況。cRU28資訊網——每日最新資訊28at.com

cRU28資訊網——每日最新資訊28at.com

2.編譯語言:又快又節能

cRU28資訊網——每日最新資訊28at.com

還有其他有趣的結果。編譯語言“往往”是最節能和運行最快的——他們的論文甚至可以用一個數字量化這一差異。“平均而言,編譯語言執行解決方案所需的能量為120J,而對于虛擬機和解釋語言,這一值分別為576J和2365J。”cRU28資訊網——每日最新資訊28at.com

cRU28資訊網——每日最新資訊28at.com

研究人員在比較執行時間時也應用了同樣的精確度,得出結論,平均而言,“編譯語言需要5103ms,虛擬機語言需要20623ms,解釋語言需要87614ms。”cRU28資訊網——每日最新資訊28at.com

cRU28資訊網——每日最新資訊28at.com

在這兩個類別中,前五名語言中的四個是編譯的。(例外是Java。)cRU28資訊網——每日最新資訊28at.com

cRU28資訊網——每日最新資訊28at.com

圖片圖片cRU28資訊網——每日最新資訊28at.com

cRU28資訊網——每日最新資訊28at.com

最慢的五種語言都是解釋的(interpreted):Lua、Python、Perl、Ruby和Typescript。而消耗能量最多的五種語言也是解釋的:Perl、Python、Ruby、JRuby和Lua。cRU28資訊網——每日最新資訊28at.com

cRU28資訊網——每日最新資訊28at.com

對于Google的新編程語言Carbon使用了多少能量,目前還沒有定論。cRU28資訊網——每日最新資訊28at.com

cRU28資訊網——每日最新資訊28at.com

但與此同時,在使用正則表達式操作字符串時,五種最節能的語言中有三種是解釋語言(TypeScript、JavaScript和PHP),盡管在其他場景中它們往往不太節能。cRU28資訊網——每日最新資訊28at.com

cRU28資訊網——每日最新資訊28at.com

編譯語言還占據了所需內存空間最少的前五個位置。cRU28資訊網——每日最新資訊28at.com

cRU28資訊網——每日最新資訊28at.com

圖片圖片cRU28資訊網——每日最新資訊28at.com

cRU28資訊網——每日最新資訊28at.com

“平均而言,編譯語言需要125Mb,虛擬機語言需要285Mb,解釋語言需要426Mb,”研究人員報告說。與此同時,解釋語言占據了內存空間消耗最多的五個位置中的四個:JRuby、Dart、Lua和Perl。(盡管Erlang不是一種解釋語言,但它也會出現在最底層五個位置中,介于Dart和Lua之間)。cRU28資訊網——每日最新資訊28at.com

cRU28資訊網——每日最新資訊28at.com

“如果按其編程范式排序,命令式語言需要116Mb,面向對象語言需要249Mb,函數式語言需要251Mb,而腳本語言需要421Mb。”cRU28資訊網——每日最新資訊28at.com

cRU28資訊網——每日最新資訊28at.com

實際上,在比較不同的范式時,命令式編程往往表現最佳。其基準程序平均使用的能量更少——運行速度也更快——比面向對象、函數式和腳本范式的基準程序。cRU28資訊網——每日最新資訊28at.com

cRU28資訊網——每日最新資訊28at.com

圖片圖片cRU28資訊網——每日最新資訊28at.com

cRU28資訊網——每日最新資訊28at.com

但需要考慮的因素有很多。“顯然,不同的編程范式,甚至是同一范式內的語言,對能量消耗、時間和內存的影響完全不同,”研究人員寫道。然而,哪個因素最重要將取決于你的場景。(例如,后臺任務不總是需要最快的運行時間。)cRU28資訊網——每日最新資訊28at.com

cRU28資訊網——每日最新資訊28at.com

而且有些應用程序需要考慮兩個因素——例如,能量使用和執行時間。在這種情況下,“C是最佳解決方案,因為它在單一目標中都占優勢,”研究人員寫道。如果你想節省時間同時使用更少的內存,C、Pascal和Go“是等效的”——如果你關注所有三個變量(時間、能量使用和內存使用),也是如此。但如果你只是想節省能量同時使用更少的內存,你最好的選擇是C或Pascal。cRU28資訊網——每日最新資訊28at.com

cRU28資訊網——每日最新資訊28at.com

圖片圖片cRU28資訊網——每日最新資訊28at.com

cRU28資訊網——每日最新資訊28at.com

3.寫在最后

cRU28資訊網——每日最新資訊28at.com

在論文的最后,研究人員補充說,進一步的研究希望能夠檢查總內存使用隨時間的變化是否與能量消耗更好地相關聯。cRU28資訊網——每日最新資訊28at.com

cRU28資訊網——每日最新資訊28at.com

他們在網上共享了他們的數據,建議這可以讓未來的研究人員更容易比較.NET語言或JVM語言。對于使用移動應用程序、物聯網系統或其他從有限電源中汲取能量的應用程序的開發人員來說,功耗是一個主要關注點。cRU28資訊網——每日最新資訊28at.com

cRU28資訊網——每日最新資訊28at.com

但最終,這項研究可能也會讓程序員們感到他們最討厭的東西:模糊性。研究人員報告說,如果你在尋找一種最好的編程語言,“這個問題沒有具體和最終的答案。cRU28資訊網——每日最新資訊28at.com

cRU28資訊網——每日最新資訊28at.com

“盡管每個基準中最節能的語言幾乎總是最快的那一個,但事實是,沒有一種語言始終優于其他語言,”研究人員總結道。“使用一種語言的情況是確定該語言是否是最節能選擇的核心方面。”cRU28資訊網——每日最新資訊28at.com

cRU28資訊網——每日最新資訊28at.com

參考鏈接:https://thenewstack.io/which-programming-languages-use-the-least-electricity/cRU28資訊網——每日最新資訊28at.com

本文鏈接:http://www.tebozhan.com/showinfo-26-95147-0.html哪種編程語言最省電?以及,編程質量與耗電多少有關?

聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。郵件:2376512515@qq.com

上一篇: 小心!使用 LINQ 時的性能陷阱

下一篇: C++模板增強,模板編程更上一層樓

標簽:
  • 熱門焦點
  • SpringBoot中使用Cache提升接口性能詳解

    環境:springboot2.3.12.RELEASE + JSR107 + Ehcache + JPASpring 框架從 3.1 開始,對 Spring 應用程序提供了透明式添加緩存的支持。和事務支持一樣,抽象緩存允許一致地使用各
  • 這款新興工具平臺,讓你的電腦效率翻倍

    隨著信息技術的發展,我們獲取信息的渠道越來越多,但是處理信息的效率卻成為一個瓶頸。于是各種工具應運而生,都在爭相解決我們的工作效率問題。今天我要給大家介紹一款效率
  • 共享單車的故事講到哪了?

    來源丨海克財經與共享充電寶相差不多,共享單車已很久沒有被國內熱點新聞關照到了。除了一再漲價和用戶直呼用不起了。近日多家媒體再發報道稱,成都、天津、鄭州等地多個共享單
  • 猿輔導與新東方的兩種“歸途”

    作者|卓心月 出品|零態LT(ID:LingTai_LT)如何成為一家偉大企業?答案一定是對“勢”的把握,這其中最關鍵的當屬對企業戰略的制定,且能夠站在未來看現在,即使這其中的
  • 阿里大調整

    來源:產品劉有媒體報道稱,近期淘寶天貓集團啟動了近年來最大的人力制度改革,涉及員工績效、層級體系等多個核心事項,目前已形成一個初步的“征求意見版”:1、取消P序列
  • 三星Galaxy Z Fold5今日亮相:厚度縮減但仍略顯厚重

    據官方此前宣布,三星將于7月26日也就是今天在韓國首爾舉辦Unpacked活動,屆時將帶來帶來包括Galaxy Buds 3、Galaxy Watch 6、Galaxy Tab S9、Galaxy
  • iQOO 11S或7月上市:搭載“雞血版”驍龍8Gen2 史上最強5G Soc

    去年底,iQOO推出了“電競旗艦”iQOO 11系列,作為一款性能強機,iQOO 11不僅全球首發2K 144Hz E6全感屏,搭載了第二代驍龍8平臺及144Hz電競屏,同時在快充
  • 2299元起!iQOO Pad開啟預售:性能最強天璣平板

    5月23日,iQOO如期舉行了新品發布會,除了首發安卓最強旗艦處理器的iQOO Neo8系列新機外,還在發布會上推出了旗下首款平板電腦——iQOO Pad,其搭載了天璣
  • OPPO K11評測:旗艦級IMX890加持 2000元檔最強影像手機

    【Techweb評測】中端機型用戶群體巨大,占了中國目前手機市場的大頭,一直以來都是各手機品牌的“必爭之地”,其中OPPO K系列機型一直以來都以高品質、
Top