chinese直男口爆体育生外卖, 99久久er热在这里只有精品99, 又色又爽又黄18禁美女裸身无遮挡, gogogo高清免费观看日本电视,私密按摩师高清版在线,人妻视频毛茸茸,91论坛 兴趣闲谈,欧美 亚洲 精品 8区,国产精品久久久久精品免费

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

各種編程語言的能耗對比分析

FPGA之家 ? 來源:FPGA之家 ? 作者:FPGA之家 ? 2022-10-20 11:23 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

手機快沒電時,管理軟件往往會提醒我們關(guān)掉某些耗電量高的應(yīng)用。可見,除了硬件廠商外,軟件廠商也應(yīng)該重視能耗問題。在這篇文章中,研究者分析了一下各種編程語言的能耗對比。

5757a344-3234-11ed-ba43-dac502259ad0.png

當能耗也成為了一個重要指標,我們要怎么選擇編程語言?2017 年,由 6 名葡萄牙研究者組成的團隊決定對這一問題進行調(diào)查并發(fā)表了一篇名為《Energy Efficiency Across Programming Languages》的論文。他們用 27 種語言寫出了 10 個問題的解決方案(遵循同樣的算法),然后運行這些方案,記錄每種編程語言消耗的電量以及速度和內(nèi)存使用情況,得到的排序結(jié)果如下圖所示:

576a8888-3234-11ed-ba43-dac502259ad0.png

通過這項研究,他們得出了一些有意思的結(jié)論,比如運行速度快的語言未必能耗小。 在論文中,作者還根據(jù)編程語言的執(zhí)行類型(編譯、虛擬機或解釋)和編程范式(命令式、函數(shù)式、面向?qū)ο蠛湍_本)對結(jié)果進行了分析。 具體而言,研究者使用了來自 Computer Language Benchmarks Game(一個用于比較性能的免費軟件項目,其中包含一組標準的算法問題和用于運行測試的框架)的 10 個問題,使得研究更有可比性和代表性。 運行各種基準測試非常重要,因為它們的結(jié)果會由于所執(zhí)行的測試而有所不同。例如,總體而言,C 語言被認為是最快的,也是最節(jié)能的。但是在涉及掃描 DNA 數(shù)據(jù)庫中特定基因序列的基準測試中,Rust 是最節(jié)能的,而 C 語言位居第三。 即使在同一測試中,「最佳」語言也取決于你的標準。比如在一個 C 排第二、Rust 排第一的測試中,如果按內(nèi)存使用情況對結(jié)果進行排序,Rust 會跌掉 9 個位次。而在一個 Fortran 能效第二高的測試中,如果結(jié)果按照運行時間排序,它也下降了 6 個位次。 研究者指出,他們嚴格遵守 CLBG 項目關(guān)于編譯器版本和最佳優(yōu)化標志的指導(dǎo)方針。功耗的測量使用一個來自英特爾的工具——Running Average Power Limit,每個程序運行 10 遍。作者表示,「這是為了減少冷啟動和緩存效應(yīng)的影響,并能夠分析測量的一致性,避免異常值」。 為了增強一致性,所有測試都在一個運行 Linux Ubuntu Server 16.10(內(nèi)核版本 4.8.0-22-generic)的臺式機上運行。

01

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

這篇論文認真地研究了一個普遍的假設(shè):速度越快的程序消耗的能源就越少。研究者指出,其實,這并不像物理學(xué)定律 E(nergy) = T(ime) x P(ower) 那么簡單。這是因為電力并不按照一定的速率進行消耗。在其他研究者的一項研究中,一個 Chapel 程序的運行時間比另一個用 Pascal 寫的等價程序少 55%,但測量結(jié)果卻表明,那個 Pascal 程序所用的能量反而要少 10%。 因此,盡管普遍認為程序運行速度更快時能耗會下降,但研究者明確指出「速度更快的語言并不總是更節(jié)能。」 這可能是一個很難回答的問題,因為功耗受到許多因素的影響(包括編譯器的質(zhì)量和使用的庫)。但最終,研究人員總結(jié)出,無論是編譯型語言、解釋型語言還是虛擬機,其實大部分能量(平均 88% 左右)是由 CPU 消耗的。 在對實驗結(jié)果分析研究之后,研究者還得出結(jié)論:DRAM 的峰值使用量與能耗之間「幾乎沒有關(guān)系」。該研究為一個長期存在的問題提供了答案:「速度更快就更環(huán)保嗎?」是的,的確是這樣,在按照執(zhí)行時間進行排序時,前 5 種最節(jié)能的語言依然排在前 5 名,而且在能量和時間值方面的差距很小。 實際上,在 10 個基準問題測試中,有 9 個得分最高者(速度和能源效率兩方面)是速度最快和能源效率最高的三種語言之一,這并沒有讓研究者感到驚訝。眾所周知,就像研究中的數(shù)據(jù)所顯示的一樣,C、C++ 和 Rust 這三種排名最靠前的語言都經(jīng)過了大量優(yōu)化,在執(zhí)行性能上都比較高效。 但是按照運行時間對其他 24 種語言進行排名時,情況就不一樣了。只有 4 種語言保持相同的能耗和時間排名(OCaml、Haskel、Racket 和 Python),而其余語言則徹底散開。 即使在單項基準測試中,也存在速度快但不節(jié)能的語言。

02

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

編譯型語言似乎是最節(jié)能和運行最快的語言,作者甚至可以在論文中用數(shù)字量化這種差異。 平均而言,編譯語言需要花費 120J 能量來運行解決方案,而虛擬機和解釋型語言要分別花費 576J 和 2365J。 在比較執(zhí)行時間時,研究者也采用了相同的精度,得出的結(jié)論是:平均而言,編譯語言花費 5103 毫秒,虛擬機語言花費 20623 毫秒,解釋型語言花費 87614 毫秒。 兩項排名中的前 4 名均為編譯型語言(有一個例外,Java 語言)。

57863b5a-3234-11ed-ba43-dac502259ad0.png

5 種最慢的語言都是解釋型語言:Lua、Python、Perl、Ruby 和 Typescript。5 種能耗最多的語言也都是解釋型語言:Perl、Python、Ruby、JRuby 和 Lua。 但同時,在使用正則表達式操作字符串時,5 種最節(jié)能的語言中有三種(TypeScript、JavaScript 和 PHP)是解釋型語言。盡管在其他情況下,它們往往不是很節(jié)能。 編譯型語言在占用內(nèi)存最少的排名中也占據(jù)了前 5 名。

57931f3c-3234-11ed-ba43-dac502259ad0.png

研究者稱:「平均而言,編譯語言需要 125Mb,虛擬機語言需要 285Mb,而解釋語言則需要 426Mb。」具體來說,有 4 種解釋型語言在這項排名中墊底,這意味著它們消耗了最多的內(nèi)存空間。 「如果按照它們的編程范式進行排序,命令式語言需要 116Mb,面向?qū)ο笳Z言需要 249Mb,函數(shù)式編程語言是 251Mb,腳本需要 421Mb。」 實際上,當比較不同范式時,命令式編程通常排在首位。與面向?qū)ο?、函?shù)式以及腳本范式的基準程序相比,命令式編程的基準程序平均使用的能源少得多,運行速度也更快。

57a3790e-3234-11ed-ba43-dac502259ad0.png

但是有很多因素需要考慮。研究者稱「很顯然,不同的編程范式,甚至同一范式中的語言對能耗、時間、內(nèi)存的影響也完全不同」。但是,其中哪一個因素最重要取決于你自己的需求情況(例如,后臺任務(wù)并不總是需要最快的運行時間)。 某些應(yīng)用程序需要同時考慮兩個因素,如能耗和執(zhí)行時間。研究者稱:「在這樣的情況下,C 語言是最佳的解決方案,因為它在這兩個方面都很有優(yōu)勢?!谷绻阆朐诠?jié)省內(nèi)存的同時節(jié)省時間,那么 C 語言、Pascal 和 Go 語言都可以。如果你正在觀察 3 個變量(時間、能耗和內(nèi)存使用情況),那么結(jié)論也是一樣的。但是,如果你只是想在使用更少內(nèi)存的同時節(jié)省能源,那么最好的選擇是 C 語言或 Pascal。

57b512d6-3234-11ed-ba43-dac502259ad0.png

審核編輯 :李倩

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 數(shù)據(jù)庫
    +關(guān)注

    關(guān)注

    7

    文章

    3994

    瀏覽量

    67952
  • 編程語言
    +關(guān)注

    關(guān)注

    10

    文章

    1960

    瀏覽量

    39095

原文標題:27種不同編程語言能耗對比!

文章出處:【微信號:zhuyandz,微信公眾號:FPGA之家】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點推薦

    對比分析電能質(zhì)量在線監(jiān)測裝置支持的斷點續(xù)傳文件傳輸協(xié)議的優(yōu)缺點

    優(yōu)缺點對比分析: 一、各協(xié)議優(yōu)缺點逐一拆解 1. FTP(文件傳輸協(xié)議) 優(yōu)點 斷點續(xù)傳機制成熟 :依托REST命令可精準定位字節(jié)偏移量,支持大文件分塊續(xù)傳,且內(nèi)置 CRC 校驗保障數(shù)據(jù)完整性,是裝置的基礎(chǔ)標配功能,適配性強。 傳輸效率高 :無加密運算損耗,傳輸速率
    的頭像 發(fā)表于 12-05 17:49 ?3022次閱讀
    <b class='flag-5'>對比分析</b>電能質(zhì)量在線監(jiān)測裝置支持的斷點續(xù)傳文件傳輸協(xié)議的優(yōu)缺點

    無源探頭與高壓探頭技術(shù)對比分析

    本文對比分析了無源探頭與高壓探頭的技術(shù)原理、性能參數(shù)及應(yīng)用場景,為選擇合適探頭提供參考。
    的頭像 發(fā)表于 11-30 15:47 ?400次閱讀

    AES加密模式簡介與對比分析

    對這些模式進行對比,我們將了解它們的不同特點和適用場景。 1. 電子密碼本模式 (ECB): ECB模式是最簡單的加密模式之一,其流程如圖1所示。它將明文分成固定大小的塊,并對每個塊進行單獨的加密
    發(fā)表于 10-22 08:21

    基美通用貼片電容CAN18C系列與CAN18X系列的對比分析

    基美作為全球知名的電子元件制造商,其通用貼片電容產(chǎn)品以高性能、高可靠性和多樣化的特點,廣泛應(yīng)用于多個領(lǐng)域。這里,基美代理商南山電子將重點對比分析基美通用貼片電容CAN18C系列與CAN18X系列
    的頭像 發(fā)表于 10-20 18:04 ?560次閱讀
    基美通用貼片電容CAN18C系列與CAN18X系列的<b class='flag-5'>對比分析</b>

    泰克示波器MDO3000與MDO4000C采樣率對比分析

    一、引言 1.1 研究背景與意義 在電子測量領(lǐng)域,示波器采樣率至關(guān)重要,直接影響波形準確性與完整性。對比分析泰克MDO3000與MDO4000C的采樣率,能為用戶選擇提供關(guān)鍵參考。 1.2 泰克
    的頭像 發(fā)表于 08-27 17:39 ?649次閱讀
    泰克示波器MDO3000與MDO4000C采樣率<b class='flag-5'>對比分析</b>

    TaskPool和Worker的對比分析

    ,并提高系統(tǒng)的整體性能。 本文將從實現(xiàn)特點和適用場景兩個方面來進行TaskPool與Worker的比較。 實現(xiàn)特點對比 表1 TaskPool和Worker的實現(xiàn)特點對比 實現(xiàn)
    發(fā)表于 06-18 06:43

    鎧裝光纜和一般光纜區(qū)別對比分析

    鎧裝光纜和一般光纜的核心區(qū)別在于結(jié)構(gòu)設(shè)計和應(yīng)用場景,以下是兩者的詳細對比分析: 一、結(jié)構(gòu)差異 鎧裝光纜 外層保護:在光纜外護套內(nèi)部增加金屬或非金屬鎧裝層(如鋼帶、鋁帶、芳綸纖維等),形成多層防護結(jié)構(gòu)
    的頭像 發(fā)表于 06-10 09:58 ?1809次閱讀
    鎧裝光纜和一般光纜區(qū)別<b class='flag-5'>對比分析</b>

    國內(nèi)外電機結(jié)構(gòu) 工藝對比分析

    純分享帖,需要者可點擊附件免費獲取完整資料~~~*附件:國內(nèi)外電機結(jié)構(gòu) 工藝對比分析.pdf【免責(zé)聲明】本文系網(wǎng)絡(luò)轉(zhuǎn)載,版權(quán)歸原作者所有。本文所用視頻、圖片、文字如涉及作品版權(quán)問題,請第一時間告知,刪除內(nèi)容!
    發(fā)表于 05-29 14:06

    主流汽車電子SoC芯片對比分析

    主流汽車電子SoC芯片對比分析 隨著汽車智能化、電動化趨勢加速,系統(tǒng)級芯片(SoC)已成為汽車電子核心硬件。本文從技術(shù)參數(shù)、市場定位、應(yīng)用場景及國產(chǎn)化進程等維度,對主流汽車電子SoC芯片進行對比分析
    的頭像 發(fā)表于 05-23 15:33 ?4991次閱讀

    HDJL接地回流試驗測試儀的數(shù)據(jù)對比分析

    。同時檢測跨步電壓和接觸電壓,參照DL/T621-1997標準,在人員活動區(qū)域測量地表電位梯度,確保故障狀態(tài)下跨步電壓低于50V。數(shù)據(jù)對比分析環(huán)節(jié)需建立三維坐標系,
    的頭像 發(fā)表于 02-28 16:32 ?640次閱讀
    HDJL接地回流試驗測試儀的數(shù)據(jù)<b class='flag-5'>對比分析</b>

    半導(dǎo)體激光器和光纖激光器的對比分析

    半導(dǎo)體激光器和光纖激光器是現(xiàn)代激光技術(shù)中的兩種重要類型,它們在結(jié)構(gòu)、工作原理、性能及應(yīng)用領(lǐng)域等方面有著顯著的區(qū)別。本文將從增益介質(zhì)、發(fā)光機理、散熱性能、輸出特性及應(yīng)用領(lǐng)域等多個方面,對這兩種激光器進行詳細的對比分析
    的頭像 發(fā)表于 02-03 14:18 ?2459次閱讀

    數(shù)字電路編程語言介紹

    數(shù)字電路編程語言是專門為描述和模擬數(shù)字電路而設(shè)計的編程語言。它們通常具有以下特點: 硬件描述語言(HDL) :大多數(shù)數(shù)字電路
    的頭像 發(fā)表于 01-24 09:39 ?1436次閱讀

    換熱器的能耗分析

    1. 引言 換熱器是工業(yè)過程中不可或缺的組成部分,用于在兩種流體之間傳遞熱量。隨著能源成本的上升和環(huán)境法規(guī)的日益嚴格,對換熱器的能耗進行分析變得尤為重要。 2. 換熱器的工作原理 換熱器通過兩種流體
    的頭像 發(fā)表于 01-19 10:48 ?1206次閱讀

    gitee 支持的編程語言有哪些

    Gitee(碼云)是一個基于 Git 的代碼托管和研發(fā)協(xié)作平臺,類似于 GitHub 和 GitLab。它支持多種編程語言,允許開發(fā)者托管和管理代碼,進行版本控制,以及協(xié)作開發(fā)。以下是一些
    的頭像 發(fā)表于 01-06 09:50 ?1135次閱讀

    Triton編譯器支持的編程語言

    Triton編譯器支持的編程語言主要包括以下幾種: 一、主要編程語言 Python :Triton編譯器通過Python接口提供了對Triton語言
    的頭像 發(fā)表于 12-24 17:33 ?1516次閱讀