色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

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

3天內不再提示

哪種編程語言適合你?看完這27種語言對比再做選擇

電子設計 ? 來源:電子設計 ? 作者:電子設計 ? 2020-10-30 09:53 ? 次閱讀

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

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


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

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

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

運行各種基準測試非常重要,因為它們的結果會由于所執行的測試而有所不同。例如,總體而言,C 語言被認為是最快的,也是最節能的。但是在涉及掃描 DNA 數據庫中特定基因序列的基準測試中,Rust 是最節能的,而 C 語言位居第三。

即使在同一測試中,「最佳」語言也取決于你的標準。比如在一個 C 排第二、Rust 排第一的測試中,如果按內存使用情況對結果進行排序,Rust 會跌掉 9 個位次。而在一個 Fortran 能效第二高的測試中,如果結果按照運行時間排序,它也下降了 6 個位次。

研究者指出,他們嚴格遵守 CLBG 項目關于編譯器版本和最佳優化標志的指導方針。功耗的測量使用一個來自英特爾的工具——Running Average Power Limit,每個程序運行 10 遍。作者表示,「這是為了減少冷啟動和緩存效應的影響,并能夠分析測量的一致性,避免異常值」。

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

運行速度快的語言更節能嗎?

這篇論文認真地研究了一個普遍的假設:速度越快的程序消耗的能源就越少。研究者指出,其實,這并不像物理學定律 E(nergy) = T(ime) x P(ower) 那么簡單。這是因為電力并不按照一定的速率進行消耗。在其他研究者的一項研究中,一個 Chapel 程序的運行時間比另一個用 Pascal 寫的等價程序少 55%,但測量結果卻表明,那個 Pascal 程序所用的能量反而要少 10%。

因此,盡管普遍認為程序運行速度更快時能耗會下降,但研究者明確指出「速度更快的語言并不總是更節能?!?/p>

這可能是一個很難回答的問題,因為功耗受到許多因素的影響(包括編譯器的質量和使用的庫)。但最終,研究人員總結出,無論是編譯型語言、解釋型語言還是虛擬機,其實大部分能量(平均 88% 左右)是由 CPU 消耗的。

在對實驗結果分析研究之后,研究者還得出結論:DRAM 的峰值使用量與能耗之間「幾乎沒有關系」。該研究為一個長期存在的問題提供了答案:「速度更快就更環保嗎?」是的,的確是這樣,在按照執行時間進行排序時,前 5 種最節能的語言依然排在前 5 名,而且在能量和時間值方面的差距很小。

實際上,在 10 個基準問題測試中,有 9 個得分最高者(速度和能源效率兩方面)是速度最快和能源效率最高的三種語言之一,這并沒有讓研究者感到驚訝。眾所周知,就像研究中的數據所顯示的一樣,C、C++ 和 Rust 這三種排名最靠前的語言都經過了大量優化,在執行性能上都比較高效。

但是按照運行時間對其他 24 種語言進行排名時,情況就不一樣了。只有 4 種語言保持相同的能耗和時間排名(OCaml、Haskel、Racket 和 Python),而其余語言則徹底散開。

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

編譯型語言的優點

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

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

在比較執行時間時,研究者也采用了相同的精度,得出的結論是:平均而言,編譯語言花費 5103 毫秒,虛擬機語言花費 20623 毫秒,解釋型語言花費 87614 毫秒。

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

5 種最慢的語言都是解釋型語言:Lua、Python、Perl、Ruby 和 Typescript。5 種能耗最多的語言也都是解釋型語言:Perl、Python、Ruby、JRuby 和 Lua。

但同時,在使用正則表達式操作字符串時,5 種最節能的語言中有三種(TypeScript、JavaScript 和 PHP)是解釋型語言。盡管在其他情況下,它們往往不是很節能。

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

研究者稱:「平均而言,編譯語言需要 125Mb,虛擬機語言需要 285Mb,而解釋語言則需要 426Mb。」具體來說,有 4 種解釋型語言在這項排名中墊底,這意味著它們消耗了最多的內存空間。

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

實際上,當比較不同范式時,命令式編程通常排在首位。與面向對象、函數式以及腳本范式的基準程序相比,命令式編程的基準程序平均使用的能源少得多,運行速度也更快。

但是有很多因素需要考慮。研究者稱「很顯然,不同的編程范式,甚至同一范式中的語言對能耗、時間、內存的影響也完全不同」。但是,其中哪一個因素最重要取決于你自己的需求情況(例如,后臺任務并不總是需要最快的運行時間)。

某些應用程序需要同時考慮兩個因素,如能耗和執行時間。研究者稱:「在這樣的情況下,C 語言是最佳的解決方案,因為它在這兩個方面都很有優勢?!谷绻阆朐诠澥却娴耐瑫r節省時間,那么 C 語言、Pascal 和 Go 語言都可以。如果你正在觀察 3 個變量(時間、能耗和內存使用情況),那么結論也是一樣的。但是,如果你只是想在使用更少內存的同時節省能源,那么最好的選擇是 C 語言或 Pascal。

審核編輯 黃昊宇

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 編程語言
    +關注

    關注

    10

    文章

    1950

    瀏覽量

    34906
收藏 人收藏

    評論

    相關推薦

    EE-33:用C語言對ADSP-21xx定時器進行編程

    電子發燒友網站提供《EE-33:用C語言對ADSP-21xx定時器進行編程.pdf》資料免費下載
    發表于 01-15 15:46 ?0次下載
    EE-33:用C<b class='flag-5'>語言對</b>ADSP-21xx定時器進行<b class='flag-5'>編程</b>

    gitee 支持的編程語言有哪些

    Gitee 支持的常見編程語言: Python :一廣泛使用的高級編程語言,以其清晰的語法和代碼可讀性而聞名。 Java :一
    的頭像 發表于 01-06 09:50 ?111次閱讀

    Triton編譯器支持的編程語言

    編寫和優化深度學習代碼。Python是一廣泛使用的高級編程語言,具有簡潔易讀、易于上手、庫豐富等特點,非常適合用于深度學習應用的開發。 二、領域特定
    的頭像 發表于 12-24 17:33 ?427次閱讀

    如何選擇適合自己的編程語言

    。 1. 確定目標和興趣 在選擇編程語言之前,首先要明確自己的目標和興趣。包括你想要開發什么類型的項目,以及對哪些技術領域感興趣。例如,
    的頭像 發表于 11-15 09:37 ?545次閱讀

    編程語言的誤區與常見問題

    選擇編程語言時,應考慮項目需求、個人興趣以及語言的適用性。例如,如果對Web開發感興趣,那么學習JavaScript可能是一個好
    的頭像 發表于 11-15 09:35 ?365次閱讀

    對比Python與Java編程語言

    Python與Java都是目前非常流行的編程語言,它們各有其獨特的優勢和適用場景。以下是對這兩編程語言
    的頭像 發表于 11-15 09:31 ?411次閱讀

    單片機編程語言有哪些選擇

    常用的單片機編程語言,以及它們的特點和應用場景: 1. C語言 特點 :C語言是一通用的編程
    的頭像 發表于 11-01 14:13 ?877次閱讀

    C語言與Java語言對比

    C語言和Java語言都是當前編程領域中的重要成員,它們各自具有獨特的優勢和特點,適用于不同的應用場景。以下將從語法特性、內存管理、跨平臺性、性能、應用領域等多個方面對C語言和Java
    的頭像 發表于 10-29 17:31 ?409次閱讀

    C語言與其他編程語言的比較

    C語言作為一歷史悠久的編程語言,自其誕生以來,一直在軟件開發領域扮演著重要角色。它以其高效、靈活和可移植性強的特點,成為了系統級編程的首選
    的頭像 發表于 10-29 17:30 ?347次閱讀

    plc編程st語言怎么編

    PLC(可編程邏輯控制器)編程中的ST(Structured Text)語言是一高級編程語言,
    的頭像 發表于 08-25 10:05 ?1443次閱讀

    PLC編程語言和C語言的區別

    在工業自動化和計算機編程領域中,PLC(可編程邏輯控制器)編程語言和C語言各自扮演著重要的角色。盡管兩者都是
    的頭像 發表于 06-14 17:11 ?3136次閱讀

    PLC常用編程語言有哪些

    在工業自動化領域,PLC(Programmable Logic Controller,可編程邏輯控制器)作為一核心控制設備,其編程語言選擇
    的頭像 發表于 06-14 16:58 ?1678次閱讀

    fpga三編程語言

    FPGA(現場可編程門陣列)的編程涉及到三主要的硬件描述語言(HDL):VHDL(VHSIC Hardware Description Language)、Verilog以及Syst
    的頭像 發表于 03-15 14:36 ?1180次閱讀

    fpga芯片用什么編程語言

    FPGA芯片主要使用的編程語言包括Verilog HDL和VHDL。這兩語言都是硬件描述語言,用于描述數字系統的結構和行為。
    的頭像 發表于 03-14 16:07 ?1590次閱讀

    plc編程語言與c語言的聯系 c語言和PLC有什么區別

    PLC編程語言與C語言的聯系 PLC(可編程邏輯控制器)是一針對自動化控制系統的特殊計算機。PLC編程
    的頭像 發表于 02-05 14:21 ?4347次閱讀
    主站蜘蛛池模板: 午夜免费体验30分 | 国产精品爽爽久久久久久蜜桃 | 高h肉辣文黄蓉 | 91进入蜜桃臀在线播放 | 亚洲日产2020乱码草莓毕 | 99亚洲精品 | 日本VA在线视频播放 | 95国产精品人妻无码久 | 哒哒哒影院在线观看免费高清 | 午夜福利08550 | 亚洲AV无码一区二区三区乱子伦 | 嫩草AV久久伊人妇女 | 国产人妻人伦精品836700 | 国产色婷婷亚洲99精品 | 久热人人综合人人九九精品视频 | 娇妻在床上迎合男人 | 成人精品综合免费视频 | 亚洲国产日韩欧美高清片a 亚洲国产日韩a精品乱码 | 欧美日韩视频一区二区三区 | 亚洲欧美成人综合 | 欧美丰满少妇久久无码精品 | 台湾佬休闲中性娱乐网 | 国产精品午夜小视频观看 | 囯产精品久久久久久久久蜜桃 | 最近中文字幕免费高清MV视频6 | 性吧 校园春色 | 精品国产5g影院天天爽 | www.青青草 | 97精品国产亚洲AV超碰 | 巨污全肉np一女多男 | 黄页网站18以下勿看免费 | 国产欧美日韩网站 | 久久久免费热线精品频 | 国产免费内射又粗又爽密桃视频 | 国产精品人妻午夜福利 | 米奇在线8888在线精品视频 | 拔萝卜在线高清观看视频 | 欧美卡1卡2卡三卡2021精品 | 国精品产露脸偷拍视频 | 国产午夜伦伦伦午夜伦 | 男人大臿蕉香蕉大视频 |