偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

提高能效,用Rust寫代碼

開發(fā) 前端
我們可以真正看到Rust在資源消耗方面的好處。PHP應用程序需要13%的CPU來處理請求,而Rust容器只需要1%。同樣,在內存使用方面,Rust的性能也是PHP的九倍。

全球數據中心的數量在不斷增加,它們的電力消耗也在不斷增加。提高能效的一種方法當然是不斷開發(fā)更好的硬件,但作為軟件開發(fā)人員,我們也應該盡自己的一份力量。

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

這篇文章展示了用Rust編碼如何幫助更有效地利用現(xiàn)有資源,幫助保護我們的星球——至少是一點點。

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

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

該論文指出,Rust在能耗和執(zhí)行時間方面排名第二,僅比第一名c多消耗約3%的能量,執(zhí)行速度僅慢4%。根據這些測量結果,Rust非常節(jié)能,特別是如果你將其與PHP的能耗進行比較,PHP的能耗是Rust的28倍,Python的能耗是Rust的74倍。

論文鏈接:https://www.sciencedirect.com/science/article/abs/pii/S0167642321000022?via%3Dihub

實際案例

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

圖片圖片

圖片圖片

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

在他們的示例中,Rust重寫只花費了原始PHP實現(xiàn)一半的開發(fā)時間,這還不包括任何新加需求。當然,重新實現(xiàn)現(xiàn)有的實現(xiàn)通常比構建原始實現(xiàn)更容易和更快,但是沒有預料到開發(fā)時間的差異會如此之大。

基準測試

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

執(zhí)行的最直接的基準測試沒有對PHP或Rust應用程序或Siege施加任何限制。針對預訂概覽頁面執(zhí)行了測試,因為這會給應用程序和數據庫帶來一些計算負載。Rust版本由一個應用程序容器和一個DB容器組成。

PHP版本還包含一個nginx,它負責提供所有的靜態(tài)文件,如CSS, JS和圖標。Rust應用程序自己為它們服務。總的CPU使用情況是所有容器的總和,而App CPU和內存使用情況只涉及Rust或PHP容器。

最大CPU

首先,在PHP和Rust應用程序上分別加載全部負載20秒。


Total CPU

App CPU

Memory Usage

Hits

PHP

121 %

37 %

276 MiB

283

Rust

212 %

57 %

31 MiB

11,297

可以看到,Rust在點擊次數(即在20秒內加載的頁面數量)上比PHP高出近4000 %。此外,我們看到PHP需要的內存幾乎是Rust應用程序的9倍。

限定CPU

你可能會認為這是一種不公平的比較,因為Rust能夠利用更多的CPU資源。因此,將每個應用容器的CPU使用率限制在20%,并執(zhí)行相同的測試。


Total CPU

App CPU

Memory Usage

Hits

PHP

44 %

20 %

96.3 MiB

69

Rust

55 %

20 %

10.8 MiB

2,275

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

正常測試

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


Total CPU

App CPU

Memory Usage

Hits

PHP

41 %

13 %

108.6 MiB

285

Rust

2.6 %

1 %

12.1 MiB

315

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

事實證明,Rust不僅對開發(fā)人員來說更有趣,而且對資源也非常友好。我們已經看到新的Rust應用程序比舊的PHP實現(xiàn)快40倍。在集群中,我們觀察到資源使用的顯著減少。

責任編輯:武曉燕 來源: coding到燈火闌珊
相關推薦

2022-12-15 10:16:23

2019-10-22 11:30:29

數據中心服務器技術

2014-02-25 15:44:31

大數據

2021-04-16 11:17:34

數據中心微軟軟件

2023-06-19 14:14:24

Rust程序Web

2023-10-23 16:21:32

工智能芯片IBM

2023-05-04 07:34:37

Rust代碼CPU

2013-12-03 09:28:02

2009-06-03 15:31:40

Eclipse插件提高代碼質量

2024-03-08 10:48:10

GoRust高性能

2023-04-17 16:40:12

能源管理綠色數字化轉型

2021-04-05 22:38:30

Python操作符代碼

2009-07-28 18:48:35

臺式機數據中心刀片

2009-07-28 16:51:27

臺式機數據中心能效

2016-03-30 10:36:13

施耐德DCIM信息化

2023-03-17 12:56:51

數字孿生工業(yè)自動化

2023-05-23 13:59:41

RustPython程序

2023-06-30 14:00:57

2023-03-02 14:24:01

智能建筑物聯(lián)網能源管理

2022-10-27 16:25:17

數據中心網絡優(yōu)化
點贊
收藏

51CTO技術棧公眾號