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

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

提高能效,用Rust寫代碼

來源: 責編: 時間:2024-06-12 17:32:35 122觀看
導讀全球數據中心的數量在不斷增加,它們的電力消耗也在不斷增加。提高能效的一種方法當然是不斷開發更好的硬件,但作為軟件開發人員,我們也應該盡自己的一份力量。根據國際能源署(IEA)的數據,2022年全球數據中心的用電量估計

全球數據中心的數量在不斷增加,它們的電力消耗也在不斷增加。提高能效的一種方法當然是不斷開發更好的硬件,但作為軟件開發人員,我們也應該盡自己的一份力量。HIo28資訊網——每日最新資訊28at.com

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

這篇文章展示了用Rust編碼如何幫助更有效地利用現有資源,幫助保護我們的星球——至少是一點點。HIo28資訊網——每日最新資訊28at.com

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

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

為什么Rust是節能的?

一般來說,比較編程語言的效率是不容易的,因為結果受到很多因素的影響。然而,R. Pereira等人的一篇論文比較了27種編程語言的能耗和內存效率以及速度。為了獲得盡可能客觀的結果,他們使用了各種基準測試進行比較。HIo28資訊網——每日最新資訊28at.com

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

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

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

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

實際案例

在Tweede golf,最近在重寫一個項目時體驗了Rust的高效率和速度。他們用Rust構建了一個圖書俱樂部管理應用程序,它之前是用PHP編寫的,具有相同的功能。這個應用程序允許讀書俱樂部借書,并根據圖書館的等級體系來管理這些書的預訂、分發和發票。HIo28資訊網——每日最新資訊28at.com

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

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

老實說,節省CPU和內存并不是重寫的主要原因,維護才是。Rust應用程序更容易維護,Rust編譯器或依賴項的版本升級不太可能破壞應用程序。此外,使用Rust的效率更高。這是因為有良好的生態系統和工具鏈,例如編譯器提供了非常有用的錯誤消息,嚴格的類型系統也有助于編寫正確的軟件。HIo28資訊網——每日最新資訊28at.com

在他們的示例中,Rust重寫只花費了原始PHP實現一半的開發時間,這還不包括任何新加需求。當然,重新實現現有的實現通常比構建原始實現更容易和更快,但是沒有預料到開發時間的差異會如此之大。HIo28資訊網——每日最新資訊28at.com

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

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

基準測試

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

執行的最直接的基準測試沒有對PHP或Rust應用程序或Siege施加任何限制。針對預訂概覽頁面執行了測試,因為這會給應用程序和數據庫帶來一些計算負載。Rust版本由一個應用程序容器和一個DB容器組成。HIo28資訊網——每日最新資訊28at.com

PHP版本還包含一個nginx,它負責提供所有的靜態文件,如CSS, JS和圖標。Rust應用程序自己為它們服務。總的CPU使用情況是所有容器的總和,而App CPU和內存使用情況只涉及Rust或PHP容器。HIo28資訊網——每日最新資訊28at.com

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

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

最大CPU

首先,在PHP和Rust應用程序上分別加載全部負載20秒。HIo28資訊網——每日最新資訊28at.com


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

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

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

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

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

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

121 %HIo28資訊網——每日最新資訊28at.com

37 %HIo28資訊網——每日最新資訊28at.com

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

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

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

212 %HIo28資訊網——每日最新資訊28at.com

57 %HIo28資訊網——每日最新資訊28at.com

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

11,297HIo28資訊網——每日最新資訊28at.com

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

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

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

限定CPU

你可能會認為這是一種不公平的比較,因為Rust能夠利用更多的CPU資源。因此,將每個應用容器的CPU使用率限制在20%,并執行相同的測試。HIo28資訊網——每日最新資訊28at.com


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

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

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

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

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

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

44 %HIo28資訊網——每日最新資訊28at.com

20 %HIo28資訊網——每日最新資訊28at.com

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

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

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

55 %HIo28資訊網——每日最新資訊28at.com

20 %HIo28資訊網——每日最新資訊28at.com

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

2,275HIo28資訊網——每日最新資訊28at.com

Rust應用程序的總CPU使用量仍然更高,這與Rust能夠處理33倍以上的請求這一事實有關,因此給數據庫帶來了更高的負載。同樣,我們可以看到PHP使用了大約9倍的內存。HIo28資訊網——每日最新資訊28at.com

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

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

正常測試

這些雖然意義重大,但都是非常理論化的測試。在實踐中,頁面上不會有這么多用戶,而且在加載下一個頁面之前,他們也會花幾秒鐘的時間對一個頁面的加載做出反應。為了更真實地測試這一點,我們為Siege提供了9個不同的url,這些url在頁面加載后0到10秒之間隨機訪問。為了獲得更好的概述,我們讓這個測試運行60秒而不是20秒。HIo28資訊網——每日最新資訊28at.com


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

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

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

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

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

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

41 %HIo28資訊網——每日最新資訊28at.com

13 %HIo28資訊網——每日最新資訊28at.com

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

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

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

2.6 %HIo28資訊網——每日最新資訊28at.com

1 %HIo28資訊網——每日最新資訊28at.com

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

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

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

事實證明,Rust不僅對開發人員來說更有趣,而且對資源也非常友好。我們已經看到新的Rust應用程序比舊的PHP實現快40倍。在集群中,我們觀察到資源使用的顯著減少。HIo28資訊網——每日最新資訊28at.com

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

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

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

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

上一篇: Next.js 15 來了,全新的編譯器、700倍的構建速度提升

下一篇: 一個巧妙設計,解鎖 React19 初始化接口優秀實踐,徹底摒棄 useEffect

標簽:
  • 熱門焦點
Top