日韩成人免费在线_国产成人一二_精品国产免费人成电影在线观..._日本一区二区三区久久久久久久久不

當(dāng)前位置:首頁(yè) > 科技  > 軟件

提高能效,用Rust寫(xiě)代碼

來(lái)源: 責(zé)編: 時(shí)間:2024-06-12 17:32:35 147觀看
導(dǎo)讀全球數(shù)據(jù)中心的數(shù)量在不斷增加,它們的電力消耗也在不斷增加。提高能效的一種方法當(dāng)然是不斷開(kāi)發(fā)更好的硬件,但作為軟件開(kāi)發(fā)人員,我們也應(yīng)該盡自己的一份力量。根據(jù)國(guó)際能源署(IEA)的數(shù)據(jù),2022年全球數(shù)據(jù)中心的用電量估計(jì)

全球數(shù)據(jù)中心的數(shù)量在不斷增加,它們的電力消耗也在不斷增加。提高能效的一種方法當(dāng)然是不斷開(kāi)發(fā)更好的硬件,但作為軟件開(kāi)發(fā)人員,我們也應(yīng)該盡自己的一份力量。csn28資訊網(wǎng)——每日最新資訊28at.com

根據(jù)國(guó)際能源署(IEA)的數(shù)據(jù),2022年全球數(shù)據(jù)中心的用電量估計(jì)為240 - 340太瓦時(shí)。這相當(dāng)于總電力需求的1.0%至1.3%。這些數(shù)字不包括加密貨幣挖礦,后者可能額外消耗了110太瓦時(shí)的電力,占全球電力需求的0.4%。csn28資訊網(wǎng)——每日最新資訊28at.com

這篇文章展示了用Rust編碼如何幫助更有效地利用現(xiàn)有資源,幫助保護(hù)我們的星球——至少是一點(diǎn)點(diǎn)。csn28資訊網(wǎng)——每日最新資訊28at.com

csn28資訊網(wǎng)——每日最新資訊28at.com

csn28資訊網(wǎng)——每日最新資訊28at.com

為什么Rust是節(jié)能的?

一般來(lái)說(shuō),比較編程語(yǔ)言的效率是不容易的,因?yàn)榻Y(jié)果受到很多因素的影響。然而,R. Pereira等人的一篇論文比較了27種編程語(yǔ)言的能耗和內(nèi)存效率以及速度。為了獲得盡可能客觀的結(jié)果,他們使用了各種基準(zhǔn)測(cè)試進(jìn)行比較。csn28資訊網(wǎng)——每日最新資訊28at.com

該論文指出,Rust在能耗和執(zhí)行時(shí)間方面排名第二,僅比第一名c多消耗約3%的能量,執(zhí)行速度僅慢4%。根據(jù)這些測(cè)量結(jié)果,Rust非常節(jié)能,特別是如果你將其與PHP的能耗進(jìn)行比較,PHP的能耗是Rust的28倍,Python的能耗是Rust的74倍。csn28資訊網(wǎng)——每日最新資訊28at.com

論文鏈接:https://www.sciencedirect.com/science/article/abs/pii/S0167642321000022?via%3Dihubcsn28資訊網(wǎng)——每日最新資訊28at.com

csn28資訊網(wǎng)——每日最新資訊28at.com

csn28資訊網(wǎng)——每日最新資訊28at.com

實(shí)際案例

在Tweede golf,最近在重寫(xiě)一個(gè)項(xiàng)目時(shí)體驗(yàn)了Rust的高效率和速度。他們用Rust構(gòu)建了一個(gè)圖書(shū)俱樂(lè)部管理應(yīng)用程序,它之前是用PHP編寫(xiě)的,具有相同的功能。這個(gè)應(yīng)用程序允許讀書(shū)俱樂(lè)部借書(shū),并根據(jù)圖書(shū)館的等級(jí)體系來(lái)管理這些書(shū)的預(yù)訂、分發(fā)和發(fā)票。csn28資訊網(wǎng)——每日最新資訊28at.com

圖片圖片csn28資訊網(wǎng)——每日最新資訊28at.com

圖片圖片csn28資訊網(wǎng)——每日最新資訊28at.com

老實(shí)說(shuō),節(jié)省CPU和內(nèi)存并不是重寫(xiě)的主要原因,維護(hù)才是。Rust應(yīng)用程序更容易維護(hù),Rust編譯器或依賴(lài)項(xiàng)的版本升級(jí)不太可能破壞應(yīng)用程序。此外,使用Rust的效率更高。這是因?yàn)橛辛己玫纳鷳B(tài)系統(tǒng)和工具鏈,例如編譯器提供了非常有用的錯(cuò)誤消息,嚴(yán)格的類(lèi)型系統(tǒng)也有助于編寫(xiě)正確的軟件。csn28資訊網(wǎng)——每日最新資訊28at.com

在他們的示例中,Rust重寫(xiě)只花費(fèi)了原始PHP實(shí)現(xiàn)一半的開(kāi)發(fā)時(shí)間,這還不包括任何新加需求。當(dāng)然,重新實(shí)現(xiàn)現(xiàn)有的實(shí)現(xiàn)通常比構(gòu)建原始實(shí)現(xiàn)更容易和更快,但是沒(méi)有預(yù)料到開(kāi)發(fā)時(shí)間的差異會(huì)如此之大。csn28資訊網(wǎng)——每日最新資訊28at.com

csn28資訊網(wǎng)——每日最新資訊28at.com

csn28資訊網(wǎng)——每日最新資訊28at.com

基準(zhǔn)測(cè)試

讓我們看一下性能比較。對(duì)于測(cè)試,使用了開(kāi)源HTTP基準(zhǔn)測(cè)試工具Siege和25個(gè)并發(fā)用戶。這些應(yīng)用程序在一臺(tái)Ubuntu筆記本電腦上本地運(yùn)行,該筆記本電腦配備了第12代英特爾?酷睿?i7-12700H和32gb內(nèi)存。由于應(yīng)用程序是作為容器運(yùn)行的,使用docker stats命令來(lái)估計(jì)資源消耗,并使用docker Compose命令在需要的地方限制資源。csn28資訊網(wǎng)——每日最新資訊28at.com

執(zhí)行的最直接的基準(zhǔn)測(cè)試沒(méi)有對(duì)PHP或Rust應(yīng)用程序或Siege施加任何限制。針對(duì)預(yù)訂概覽頁(yè)面執(zhí)行了測(cè)試,因?yàn)檫@會(huì)給應(yīng)用程序和數(shù)據(jù)庫(kù)帶來(lái)一些計(jì)算負(fù)載。Rust版本由一個(gè)應(yīng)用程序容器和一個(gè)DB容器組成。csn28資訊網(wǎng)——每日最新資訊28at.com

PHP版本還包含一個(gè)nginx,它負(fù)責(zé)提供所有的靜態(tài)文件,如CSS, JS和圖標(biāo)。Rust應(yīng)用程序自己為它們服務(wù)。總的CPU使用情況是所有容器的總和,而App CPU和內(nèi)存使用情況只涉及Rust或PHP容器。csn28資訊網(wǎng)——每日最新資訊28at.com

csn28資訊網(wǎng)——每日最新資訊28at.com

csn28資訊網(wǎng)——每日最新資訊28at.com

最大CPU

首先,在PHP和Rust應(yīng)用程序上分別加載全部負(fù)載20秒。csn28資訊網(wǎng)——每日最新資訊28at.com


csn28資訊網(wǎng)——每日最新資訊28at.com

Total CPUcsn28資訊網(wǎng)——每日最新資訊28at.com

App CPUcsn28資訊網(wǎng)——每日最新資訊28at.com

Memory Usagecsn28資訊網(wǎng)——每日最新資訊28at.com

Hitscsn28資訊網(wǎng)——每日最新資訊28at.com

PHPcsn28資訊網(wǎng)——每日最新資訊28at.com

121 %csn28資訊網(wǎng)——每日最新資訊28at.com

37 %csn28資訊網(wǎng)——每日最新資訊28at.com

276 MiBcsn28資訊網(wǎng)——每日最新資訊28at.com

283csn28資訊網(wǎng)——每日最新資訊28at.com

Rustcsn28資訊網(wǎng)——每日最新資訊28at.com

212 %csn28資訊網(wǎng)——每日最新資訊28at.com

57 %csn28資訊網(wǎng)——每日最新資訊28at.com

31 MiBcsn28資訊網(wǎng)——每日最新資訊28at.com

11,297csn28資訊網(wǎng)——每日最新資訊28at.com

可以看到,Rust在點(diǎn)擊次數(shù)(即在20秒內(nèi)加載的頁(yè)面數(shù)量)上比PHP高出近4000 %。此外,我們看到PHP需要的內(nèi)存幾乎是Rust應(yīng)用程序的9倍。csn28資訊網(wǎng)——每日最新資訊28at.com

csn28資訊網(wǎng)——每日最新資訊28at.com

csn28資訊網(wǎng)——每日最新資訊28at.com

限定CPU

你可能會(huì)認(rèn)為這是一種不公平的比較,因?yàn)镽ust能夠利用更多的CPU資源。因此,將每個(gè)應(yīng)用容器的CPU使用率限制在20%,并執(zhí)行相同的測(cè)試。csn28資訊網(wǎng)——每日最新資訊28at.com


csn28資訊網(wǎng)——每日最新資訊28at.com

Total CPUcsn28資訊網(wǎng)——每日最新資訊28at.com

App CPUcsn28資訊網(wǎng)——每日最新資訊28at.com

Memory Usagecsn28資訊網(wǎng)——每日最新資訊28at.com

Hitscsn28資訊網(wǎng)——每日最新資訊28at.com

PHPcsn28資訊網(wǎng)——每日最新資訊28at.com

44 %csn28資訊網(wǎng)——每日最新資訊28at.com

20 %csn28資訊網(wǎng)——每日最新資訊28at.com

96.3 MiBcsn28資訊網(wǎng)——每日最新資訊28at.com

69csn28資訊網(wǎng)——每日最新資訊28at.com

Rustcsn28資訊網(wǎng)——每日最新資訊28at.com

55 %csn28資訊網(wǎng)——每日最新資訊28at.com

20 %csn28資訊網(wǎng)——每日最新資訊28at.com

10.8 MiBcsn28資訊網(wǎng)——每日最新資訊28at.com

2,275csn28資訊網(wǎng)——每日最新資訊28at.com

Rust應(yīng)用程序的總CPU使用量仍然更高,這與Rust能夠處理33倍以上的請(qǐng)求這一事實(shí)有關(guān),因此給數(shù)據(jù)庫(kù)帶來(lái)了更高的負(fù)載。同樣,我們可以看到PHP使用了大約9倍的內(nèi)存。csn28資訊網(wǎng)——每日最新資訊28at.com

csn28資訊網(wǎng)——每日最新資訊28at.com

csn28資訊網(wǎng)——每日最新資訊28at.com

正常測(cè)試

這些雖然意義重大,但都是非常理論化的測(cè)試。在實(shí)踐中,頁(yè)面上不會(huì)有這么多用戶,而且在加載下一個(gè)頁(yè)面之前,他們也會(huì)花幾秒鐘的時(shí)間對(duì)一個(gè)頁(yè)面的加載做出反應(yīng)。為了更真實(shí)地測(cè)試這一點(diǎn),我們?yōu)镾iege提供了9個(gè)不同的url,這些url在頁(yè)面加載后0到10秒之間隨機(jī)訪問(wèn)。為了獲得更好的概述,我們讓這個(gè)測(cè)試運(yùn)行60秒而不是20秒。csn28資訊網(wǎng)——每日最新資訊28at.com


csn28資訊網(wǎng)——每日最新資訊28at.com

Total CPUcsn28資訊網(wǎng)——每日最新資訊28at.com

App CPUcsn28資訊網(wǎng)——每日最新資訊28at.com

Memory Usagecsn28資訊網(wǎng)——每日最新資訊28at.com

Hitscsn28資訊網(wǎng)——每日最新資訊28at.com

PHPcsn28資訊網(wǎng)——每日最新資訊28at.com

41 %csn28資訊網(wǎng)——每日最新資訊28at.com

13 %csn28資訊網(wǎng)——每日最新資訊28at.com

108.6 MiBcsn28資訊網(wǎng)——每日最新資訊28at.com

285csn28資訊網(wǎng)——每日最新資訊28at.com

Rustcsn28資訊網(wǎng)——每日最新資訊28at.com

2.6 %csn28資訊網(wǎng)——每日最新資訊28at.com

1 %csn28資訊網(wǎng)——每日最新資訊28at.com

12.1 MiBcsn28資訊網(wǎng)——每日最新資訊28at.com

315csn28資訊網(wǎng)——每日最新資訊28at.com

在這里,我們可以真正看到Rust在資源消耗方面的好處。PHP應(yīng)用程序需要13%的CPU來(lái)處理請(qǐng)求,而Rust容器只需要1%。同樣,在內(nèi)存使用方面,Rust的性能也是PHP的九倍。csn28資訊網(wǎng)——每日最新資訊28at.com

事實(shí)證明,Rust不僅對(duì)開(kāi)發(fā)人員來(lái)說(shuō)更有趣,而且對(duì)資源也非常友好。我們已經(jīng)看到新的Rust應(yīng)用程序比舊的PHP實(shí)現(xiàn)快40倍。在集群中,我們觀察到資源使用的顯著減少。csn28資訊網(wǎng)——每日最新資訊28at.com

csn28資訊網(wǎng)——每日最新資訊28at.com

csn28資訊網(wǎng)——每日最新資訊28at.com

本文鏈接:http://www.www897cc.com/showinfo-26-93372-0.html提高能效,用Rust寫(xiě)代碼

聲明:本網(wǎng)頁(yè)內(nèi)容旨在傳播知識(shí),若有侵權(quán)等問(wèn)題請(qǐng)及時(shí)與本網(wǎng)聯(lián)系,我們將在第一時(shí)間刪除處理。郵件:2376512515@qq.com

上一篇: Next.js 15 來(lái)了,全新的編譯器、700倍的構(gòu)建速度提升

下一篇: 一個(gè)巧妙設(shè)計(jì),解鎖 React19 初始化接口優(yōu)秀實(shí)踐,徹底摒棄 useEffect

標(biāo)簽:
  • 熱門(mén)焦點(diǎn)
  • 影音體驗(yàn)是真的強(qiáng) 簡(jiǎn)單聊聊iQOO Pad

    大公司的好處就是產(chǎn)品線豐富,非常細(xì)分化的東西也能給你做出來(lái),例如早先我們看到了新的vivo Pad2,之后我們又在iQOO Neo8 Pro的發(fā)布會(huì)上看到了iQOO的首款平板產(chǎn)品iQOO Pad。雖
  • vivo TWS Air開(kāi)箱體驗(yàn):真輕 臻好聽(tīng)

    在vivo S15系列新機(jī)的發(fā)布會(huì)上,vivo的最新款真無(wú)線藍(lán)牙耳機(jī)vivo TWS Air也一同發(fā)布,本次就這款耳機(jī)新品給大家?guī)?lái)一個(gè)簡(jiǎn)單的分享。外包裝盒上,vivo TWS Air保持了vivo自家產(chǎn)
  • 容量越大越不壞?24萬(wàn)塊硬盤(pán)故障率報(bào)告公布 這些產(chǎn)品零故障

    8月5日消息,云存儲(chǔ)服務(wù)商Backblaze發(fā)布了最新的硬盤(pán)故障率報(bào)告,年故障率有所上升。Backblaze發(fā)布的硬盤(pán)季度統(tǒng)計(jì)數(shù)據(jù),其中包括故障率等重要方面。這些結(jié)
  • 2023 年的 Node.js 生態(tài)系統(tǒng)

    隨著技術(shù)的不斷演進(jìn)和創(chuàng)新,Node.js 在 2023 年達(dá)到了一個(gè)新的高度。Node.js 擁有一個(gè)龐大的生態(tài)系統(tǒng),可以幫助開(kāi)發(fā)人員更快地實(shí)現(xiàn)復(fù)雜的應(yīng)用。本文就來(lái)看看 Node.js 最新的生
  • SpringBoot中使用Cache提升接口性能詳解

    環(huán)境:springboot2.3.12.RELEASE + JSR107 + Ehcache + JPASpring 框架從 3.1 開(kāi)始,對(duì) Spring 應(yīng)用程序提供了透明式添加緩存的支持。和事務(wù)支持一樣,抽象緩存允許一致地使用各
  • 多線程開(kāi)發(fā)帶來(lái)的問(wèn)題與解決方法

    使用多線程主要會(huì)帶來(lái)以下幾個(gè)問(wèn)題:(一)線程安全問(wèn)題  線程安全問(wèn)題指的是在某一線程從開(kāi)始訪問(wèn)到結(jié)束訪問(wèn)某一數(shù)據(jù)期間,該數(shù)據(jù)被其他的線程所修改,那么對(duì)于當(dāng)前線程而言,該線程
  • 梁柱接棒兩年,騰訊音樂(lè)闖出新路子

    文丨田靜 出品丨牛刀財(cái)經(jīng)(niudaocaijing)7月5日,企鵝FM發(fā)布官方公告稱(chēng)由于業(yè)務(wù)調(diào)整,將于9月6日正式停止運(yùn)營(yíng),這意味著騰訊音樂(lè)長(zhǎng)音頻業(yè)務(wù)走向消亡。騰訊在長(zhǎng)音頻領(lǐng)域還在摸索。為
  • 三星獲批量產(chǎn)iPhone 15全系屏幕:蘋(píng)果史上最驚艷直屏

    按照慣例,蘋(píng)果將繼續(xù)在今年9月舉辦一年一度的秋季新品發(fā)布會(huì),有傳言稱(chēng)發(fā)布會(huì)將于9月12日舉行,屆時(shí)全新的iPhone 15系列將正式與大家見(jiàn)面,不出意外的話
  • OPPO K11搭載高性能石墨散熱系統(tǒng):旗艦同款 性能涼爽釋放

    日前OPPO官方宣布,將于7月25日14:30舉辦新品發(fā)布會(huì),屆時(shí)全新的OPPO K11將正式與大家見(jiàn)面,將主打旗艦影像,和同檔位競(jìng)品相比,其最大的賣(mài)點(diǎn)就是將配備索尼
Top 主站蜘蛛池模板: 牡丹江市| 苏尼特左旗| 商城县| 改则县| 乌兰浩特市| 阳原县| 阿拉尔市| 苍梧县| 商洛市| 宁强县| 高台县| 芒康县| 察隅县| 青阳县| 姜堰市| 喀什市| 蓬安县| 嘉定区| 大荔县| 沈丘县| 宣武区| 株洲县| 大兴区| 塔河县| 湘潭县| 郧西县| 孟连| 宁海县| 金乡县| 卫辉市| 白银市| 台南县| 三门县| 毕节市| 盐津县| 同江市| 辉南县| 泰来县| 兰西县| 毕节市| 扬中市|