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

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

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

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

各種編程語(yǔ)言的能耗對(duì)比

Q4MP_gh_c472c21 ? 來(lái)源:嵌入式ARM ? 作者:老九學(xué)堂 ? 2020-12-30 10:27 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

上次跟大家分享了即將淘汰的編程語(yǔ)言,看來(lái)大家對(duì)于編程語(yǔ)言的好壞,都很有自己的見(jiàn)解啊。

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

那今天我們?cè)僖胍粋€(gè)比較的概念——耗電量。

手機(jī)快沒(méi)電時(shí),管理軟件往往會(huì)提醒我們關(guān)掉某些耗電量高的應(yīng)用。

可見(jiàn),除了硬件廠商外,軟件廠商也應(yīng)該重視能耗問(wèn)題。(企業(yè)級(jí)需求?。?/p>

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

ee3c74bc-49b8-11eb-8b86-12bb97331649.png

當(dāng)能耗也成為了一個(gè)重要指標(biāo),我們要怎么選擇編程語(yǔ)言?

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

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

eeae2cce-49b8-11eb-8b86-12bb97331649.png

通過(guò)這項(xiàng)研究,他們得出了一些有意思的結(jié)論,比如運(yùn)行速度快的語(yǔ)言未必能耗小。

在論文中,作者還根據(jù)編程語(yǔ)言的執(zhí)行類型(編譯、虛擬機(jī)或解釋)和編程范式(命令式、函數(shù)式、面向?qū)ο蠛湍_本)對(duì)結(jié)果進(jìn)行了分析。

具體而言,研究者使用了來(lái)自 Computer Language Benchmarks Game(一個(gè)用于比較性能的免費(fèi)軟件項(xiàng)目,其中包含一組標(biāo)準(zhǔn)的算法問(wèn)題和用于運(yùn)行測(cè)試的框架)的 10 個(gè)問(wèn)題,使得研究更有可比性和代表性。

運(yùn)行各種基準(zhǔn)測(cè)試非常重要,因?yàn)樗鼈兊慕Y(jié)果會(huì)由于所執(zhí)行的測(cè)試而有所不同。

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

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

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

所以即使在同一測(cè)試中,最佳語(yǔ)言依然取決于你的標(biāo)準(zhǔn)。

比如在一個(gè) C 排第二、Rust 排第一的測(cè)試中,如果按內(nèi)存使用情況對(duì)結(jié)果進(jìn)行排序,Rust 會(huì)跌掉 9 個(gè)位次。

而在一個(gè) Fortran 能效第二高的測(cè)試中,如果結(jié)果按照運(yùn)行時(shí)間排序,它也下降了 6 個(gè)位次。

研究者指出,他們嚴(yán)格遵守 CLBG 項(xiàng)目關(guān)于編譯器版本和最佳優(yōu)化標(biāo)志的指導(dǎo)方針。

功耗的測(cè)量使用一個(gè)來(lái)自英特爾的工具——Running Average Power Limit,每個(gè)程序運(yùn)行 10 遍。

作者表示:

這是為了減少冷啟動(dòng)和緩存效應(yīng)的影響,并能夠分析測(cè)量的一致性,避免異常值。

為了增強(qiáng)一致性,所有測(cè)試都在一個(gè)運(yùn)行 Linux Ubuntu Server 16.10(內(nèi)核版本 4.8.0-22-generic)的臺(tái)式機(jī)上運(yùn)行。

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

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

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

這是因?yàn)殡娏Σ⒉话凑找欢ǖ乃俾蔬M(jìn)行消耗。

在其他研究者的一項(xiàng)研究中,一個(gè) Chapel 程序的運(yùn)行時(shí)間比另一個(gè)用 Pascal 寫的等價(jià)程序少 55%,但測(cè)量結(jié)果卻表明,那個(gè) Pascal 程序所用的能量反而要少10%。

因此,盡管普遍認(rèn)為程序運(yùn)行速度更快時(shí)能耗會(huì)下降,但研究者明確指出:

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

這可能是一個(gè)很難回答的問(wèn)題,因?yàn)楣氖艿皆S多因素的影響(包括編譯器的質(zhì)量和使用的庫(kù))。

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

在對(duì)實(shí)驗(yàn)結(jié)果分析研究之后,研究者還得出結(jié)論:

DRAM 的峰值使用量與能耗之間幾乎沒(méi)有關(guān)系。

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

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

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

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

但是按照運(yùn)行時(shí)間對(duì)其他 24 種語(yǔ)言進(jìn)行排名時(shí),情況就不一樣了。

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

即使在單項(xiàng)基準(zhǔn)測(cè)試中,也存在速度快但不節(jié)能的語(yǔ)言。

編譯型語(yǔ)言的優(yōu)點(diǎn)

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

平均而言,編譯語(yǔ)言需要花費(fèi) 120J 能量來(lái)運(yùn)行解決方案,而虛擬機(jī)和解釋型語(yǔ)言要分別花費(fèi) 576J 和 2365J。

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

平均而言,編譯語(yǔ)言花費(fèi) 5103 毫秒,虛擬機(jī)語(yǔ)言花費(fèi) 20623 毫秒,解釋型語(yǔ)言花費(fèi) 87614 毫秒。

兩項(xiàng)排名中的前 4 名均為編譯型語(yǔ)言(有一個(gè)例外,Java 語(yǔ)言)。

f1ca458c-49b8-11eb-8b86-12bb97331649.png

5 種最慢的語(yǔ)言都是解釋型語(yǔ)言:

Lua、Python、Perl、Ruby 和 Typescript。

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

Perl、Python、Ruby、JRuby 和 Lua。

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

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

編譯型語(yǔ)言在占用內(nèi)存最少的排名中也占據(jù)了前 5 名。

f219709e-49b8-11eb-8b86-12bb97331649.png

研究者稱:

平均而言,編譯語(yǔ)言需要 125Mb,虛擬機(jī)語(yǔ)言需要 285Mb,而解釋語(yǔ)言則需要 426Mb。

具體來(lái)說(shuō),有 4 種解釋型語(yǔ)言在這項(xiàng)排名中墊底,這意味著它們消耗了最多的內(nèi)存空間。

如果按照它們的編程范式進(jìn)行排序,命令式語(yǔ)言需要 116Mb,面向?qū)ο笳Z(yǔ)言需要 249Mb,函數(shù)式編程語(yǔ)言是 251Mb,腳本需要 421Mb。

實(shí)際上,當(dāng)比較不同范式時(shí),命令式編程通常排在首位。

與面向?qū)ο?、函?shù)式以及腳本范式的基準(zhǔn)程序相比,命令式編程的基準(zhǔn)程序平均使用的能源少得多,運(yùn)行速度也更快。

f30405d2-49b8-11eb-8b86-12bb97331649.png

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

研究者稱

很顯然,不同的編程范式,甚至同一范式中的語(yǔ)言對(duì)能耗、時(shí)間、內(nèi)存的影響也完全不同。

但是,其中哪一個(gè)因素最重要取決于你自己的需求情況(例如,后臺(tái)任務(wù)并不總是需要最快的運(yùn)行時(shí)間)。

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

研究者稱:

在這樣的情況下,C 語(yǔ)言是最佳的解決方案,因?yàn)樗谶@兩個(gè)方面都很有優(yōu)勢(shì)。

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

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

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

f3ec874e-49b8-11eb-8b86-12bb97331649.png

總結(jié)一下:

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

但是,C語(yǔ)言就是最厲害的!

責(zé)任編輯:xj

原文標(biāo)題:世界上最好的編程語(yǔ)言是哪個(gè)?

文章出處:【微信公眾號(hào):嵌入式ARM】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

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

    關(guān)注

    183

    文章

    7642

    瀏覽量

    144752
  • 編程
    +關(guān)注

    關(guān)注

    90

    文章

    3709

    瀏覽量

    96874

原文標(biāo)題:世界上最好的編程語(yǔ)言是哪個(gè)?

文章出處:【微信號(hào):gh_c472c2199c88,微信公眾號(hào):嵌入式微處理器】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

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

掃碼添加小助手

加入工程師交流群

    評(píng)論

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

    如何調(diào)試和編程CW32F030C8T7?支持哪些調(diào)試工具和編程語(yǔ)言?

    了解如何調(diào)試和編程CW32F030C8T7是開(kāi)發(fā)過(guò)程中的重要環(huán)節(jié)。它支持哪些調(diào)試工具(如JTAG、串口調(diào)試等)和編程語(yǔ)言(如C、C++等)?如何設(shè)置和使用這些工具來(lái)加速開(kāi)發(fā)過(guò)程?
    發(fā)表于 12-05 06:48

    為什么單片機(jī)還在用C語(yǔ)言編程?

    說(shuō)起單片機(jī)我們就會(huì)想到C語(yǔ)言,單片機(jī)為什么還在用C語(yǔ)言編程?現(xiàn)在有很多很好用的高級(jí)語(yǔ)言,如VC、PYTHON、PHP等等,為什么這些語(yǔ)言不能
    發(fā)表于 11-28 07:37

    C語(yǔ)言編程技巧

    設(shè)計(jì),分層開(kāi)發(fā)代碼,便于理解和維護(hù)。 ?8、避免使用GOTO語(yǔ)句?:盡管GOTO語(yǔ)句在某些情況下仍然有用,但現(xiàn)代編程更傾向于使用函數(shù)和循環(huán)控制結(jié)構(gòu),以提高代碼的可讀性和維護(hù)性。 ?9、利用C語(yǔ)言的靈活性
    發(fā)表于 11-27 06:46

    2025年最佳的嵌入式編程語(yǔ)言有哪些呢?

    嵌入式系統(tǒng)是現(xiàn)代科技不可或缺的一部分。它們存在于家用電器、汽車、住宅、醫(yī)院、商店等各個(gè)領(lǐng)域。它們與我們的社會(huì)緊密相連。選擇合適的語(yǔ)言來(lái)構(gòu)建嵌入式系統(tǒng)對(duì)于成功至關(guān)重要。那么,2025年最佳的嵌入式編程
    的頭像 發(fā)表于 11-14 10:27 ?956次閱讀
    2025年最佳的嵌入式<b class='flag-5'>編程</b><b class='flag-5'>語(yǔ)言</b>有哪些呢?

    一文了解Mojo編程語(yǔ)言

    Mojo 是一種由 Modular AI 公司開(kāi)發(fā)的編程語(yǔ)言,旨在將 Python 的易用性與 C 語(yǔ)言的高性能相結(jié)合,特別適合人工智能(AI)、高性能計(jì)算(HPC)和系統(tǒng)級(jí)編程場(chǎng)景。
    發(fā)表于 11-07 05:59

    梯形圖語(yǔ)言補(bǔ)充編程說(shuō)明書

    電子發(fā)燒友網(wǎng)站提供《梯形圖語(yǔ)言補(bǔ)充編程說(shuō)明書.pdf》資料免費(fèi)下載
    發(fā)表于 07-09 14:14 ?2次下載

    5CEBA4F23C8NQS現(xiàn)場(chǎng)可編程門陣列(FPGA)芯片

    5CEBA4F23C8NQS現(xiàn)場(chǎng)可編程門陣列(FPGA)芯片5CEBA4F23C8NQS是Intel-ALTERA(原 Altera)研發(fā)的Cyclone V系列性能卓越、低能耗的現(xiàn)場(chǎng)可編程門陣列
    發(fā)表于 06-11 09:01

    單片機(jī)c語(yǔ)言編程實(shí)例大全

    單片機(jī)c語(yǔ)言編程實(shí)例大全_18
    發(fā)表于 04-30 16:11 ?6次下載

    安科瑞能耗管理系統(tǒng):工廠能耗問(wèn)題的克星

    在工業(yè)生產(chǎn)中,工廠能耗問(wèn)題一直是企業(yè)運(yùn)營(yíng)成本的重要組成部分。如何有效管理和降低能耗,不僅關(guān)系到企業(yè)的經(jīng)濟(jì)效益,還與環(huán)保和可持續(xù)發(fā)展息息相關(guān)。今天,我們就來(lái)聊聊工廠里經(jīng)常遇到的能耗問(wèn)題,以及安科瑞
    的頭像 發(fā)表于 02-11 15:53 ?708次閱讀

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

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

    什么是能耗監(jiān)測(cè)管理系統(tǒng) -如何實(shí)現(xiàn)能耗管控能耗監(jiān)測(cè)管理系統(tǒng)?

    什么是能耗監(jiān)測(cè)管理系統(tǒng) 如何實(shí)現(xiàn)能耗管控能耗監(jiān)測(cè)管理系統(tǒng),簡(jiǎn)而言之,是一個(gè)集成了數(shù)據(jù)采集、處理、分析與展示功能的智能化平臺(tái),旨在幫助企業(yè)、機(jī)構(gòu)乃至整個(gè)城市實(shí)現(xiàn)對(duì)能源消耗的全面監(jiān)控與管理。它通過(guò)部署在
    的頭像 發(fā)表于 01-06 14:36 ?1693次閱讀
    什么是<b class='flag-5'>能耗</b>監(jiān)測(cè)管理系統(tǒng) -如何實(shí)現(xiàn)<b class='flag-5'>能耗</b>管控<b class='flag-5'>能耗</b>監(jiān)測(cè)管理系統(tǒng)?

    gitee 支持的編程語(yǔ)言有哪些

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

    EE-294:Blackfin處理器上的能耗感知編程

    電子發(fā)燒友網(wǎng)站提供《EE-294:Blackfin處理器上的能耗感知編程.pdf》資料免費(fèi)下載
    發(fā)表于 01-05 09:32 ?0次下載
    EE-294:Blackfin處理器上的<b class='flag-5'>能耗</b>感知<b class='flag-5'>編程</b>

    三菱PLC編程語(yǔ)言解析

    三菱電機(jī)(Mitsubishi Electric)是全球知名的自動(dòng)化和制造解決方案供應(yīng)商,其PLC(可編程邏輯控制器)產(chǎn)品廣泛應(yīng)用于工業(yè)自動(dòng)化領(lǐng)域。三菱PLC編程語(yǔ)言主要基于國(guó)際標(biāo)準(zhǔn)IEC
    的頭像 發(fā)表于 12-26 17:36 ?2291次閱讀

    Triton編譯器支持的編程語(yǔ)言

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