成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

提高能效,用Rust寫代碼

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

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

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

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

為什么Rust是節能的?

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

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

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

實際案例

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

圖片圖片

圖片圖片

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

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

基準測試

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

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

PHP版本還包含一個nginx,它負責提供所有的靜態文件,如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%,并執行相同的測試。


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倍的內存。

正常測試

這些雖然意義重大,但都是非常理論化的測試。在實踐中,頁面上不會有這么多用戶,而且在加載下一個頁面之前,他們也會花幾秒鐘的時間對一個頁面的加載做出反應。為了更真實地測試這一點,我們為Siege提供了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不僅對開發人員來說更有趣,而且對資源也非常友好。我們已經看到新的Rust應用程序比舊的PHP實現快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

2024-03-08 10:48:10

GoRust高性能

2009-06-03 15:31:40

Eclipse插件提高代碼質量

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

數字孿生工業自動化

2023-05-23 13:59:41

RustPython程序

2023-06-30 14:00:57

2023-03-02 14:24:01

智能建筑物聯網能源管理

2022-10-27 16:25:17

數據中心網絡優化
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 久久综合激情 | 国产特级毛片aaaaaa喷潮 | 自拍偷拍亚洲欧美 | 亚洲视频第一页 | 天堂在线网 | 无人区国产成人久久三区 | 国产日韩欧美另类 | 欧美激情精品久久久久久变态 | 999久久久 | 久久久久亚洲 | 欧美一级二级三级视频 | 日本在线小视频 | 久久久久久国产 | 国产一区二区三区欧美 | 成人国产精品视频 | 精品视频一区二区三区在线观看 | 亚洲午夜精品一区二区三区他趣 | 精品视频国产 | 亚洲精品久久久久中文字幕二区 | 99re视频在线观看 | 久久久妇女国产精品影视 | 免费一区 | 在线中文一区 | 奇米影视77 | 欧美成人一级视频 | 天堂中文字幕av | 精品一区二区三区91 | 91精品www | 精品一区二区在线观看 | 天天综合永久入口 | 亚洲一区二区三区四区五区中文 | 国产精品久久久久久久久久久免费看 | 国产a视频| 国色天香综合网 | 一区二区三区国产精品 | 国产精品一区二区av | 欧美黄色片 | 中文在线a在线 | 偷拍自拍网站 | 丁香五月网久久综合 | 国产99久久精品一区二区永久免费 |