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

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

不好意思,沒達(dá)到公司性能目標(biāo),決定從 Go 切換到 Rust

來源: 責(zé)編: 時(shí)間:2024-06-27 17:17:50 215觀看
導(dǎo)讀今天分享篇文章關(guān)于 Discord 為什么從 Go 切換到 Rust。如今 Rust 逐漸成為許多領(lǐng)域的一流語言,盡管還是相對較新的語言,但它已經(jīng)在重塑許多創(chuàng)新行業(yè)方面發(fā)揮了重要作用了。Rust 憑借其市場領(lǐng)先的性能、內(nèi)存安全性和并

今天分享篇文章關(guān)于 Discord 為什么從 Go 切換到 Rust。eOY28資訊網(wǎng)——每日最新資訊28at.com

如今 Rust 逐漸成為許多領(lǐng)域的一流語言,盡管還是相對較新的語言,但它已經(jīng)在重塑許多創(chuàng)新行業(yè)方面發(fā)揮了重要作用了。Rust 憑借其市場領(lǐng)先的性能、內(nèi)存安全性和并發(fā)性功能增強(qiáng)了眾多領(lǐng)域。 eOY28資訊網(wǎng)——每日最新資訊28at.com

下面一起來康康,這篇文章吧!eOY28資訊網(wǎng)——每日最新資訊28at.com

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

讀取狀態(tài)服務(wù)

Discord 是家專注于產(chǎn)品的公司,先從產(chǎn)品背景聊起,Discord 從 Go 語言遷移到 Rust 語言,以解決 "Read States" 服務(wù)的性能問題。該服務(wù)負(fù)責(zé)追蹤用戶已讀的頻道和消息,對響應(yīng)速度有高要求。然而 Go 的內(nèi)存模型和垃圾收集器導(dǎo)致了性能不穩(wěn)定,非常影響用戶體驗(yàn)。eOY28資訊網(wǎng)——每日最新資訊28at.com

Go 沒有達(dá)到我們的性能目標(biāo)原因

為了解釋 Go 不能達(dá)到我們理想中性能目標(biāo),進(jìn)行以下 5 個(gè)方面解釋:eOY28資訊網(wǎng)——每日最新資訊28at.com

  • 數(shù)據(jù)結(jié)構(gòu):使用"讀取狀態(tài)"來存儲每個(gè)用戶在每個(gè)頻道的讀取信息,每個(gè)狀態(tài)包含多個(gè)需要原子更新的計(jì)數(shù)器。
  • 規(guī)模:Discord擁有數(shù)十億個(gè)讀取狀態(tài),每個(gè)狀態(tài)服務(wù)器有數(shù)百萬個(gè)用戶的緩存。
  • 訪問模式:每秒有數(shù)十萬次的緩存更新,以及數(shù)萬次的數(shù)據(jù)庫寫入。
  • 架構(gòu):使用Cassandra數(shù)據(jù)庫集群支持緩存,緩存鍵逐出時(shí)數(shù)據(jù)提交到數(shù)據(jù)庫。
  • 性能問題:每2分鐘出現(xiàn)一次延遲和CPU峰值,可能與高頻率的緩存更新和數(shù)據(jù)庫寫入有關(guān)。

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

那么為什么是2分鐘的峰值呢?

Go 語言的垃圾收集器(GC)每2分鐘強(qiáng)制執(zhí)行一次,導(dǎo)致性能短暫下降。我們也嘗試調(diào)整GC頻率但是以無效告終,根本原因是內(nèi)存分配速度不足以觸發(fā)更頻繁的GC。深入研究后發(fā)現(xiàn),GC 需掃描整個(gè)LRU緩存來識別無用內(nèi)存,是性能峰值的主因。eOY28資訊網(wǎng)——每日最新資訊28at.com

這樣導(dǎo)致了減小 LRU 緩存可以減少GC峰值,但會增加緩存未命中率,從而增加延遲。團(tuán)隊(duì)通過負(fù)載測試找到了一個(gè)折中的緩存設(shè)置,但并非完美。最終我們決定將服務(wù)切換到 Rust,希望利用 Rust 的優(yōu)勢解決性能問題,提升用戶體驗(yàn)。eOY28資訊網(wǎng)——每日最新資訊28at.com

Rust 內(nèi)存管理優(yōu)勢

Rust 速度極快,內(nèi)存效率極高:無需運(yùn)行時(shí)或垃圾收集器,它可以為性能關(guān)鍵型服務(wù)提供支持,在嵌入式設(shè)備上運(yùn)行,并輕松與其他語言集成。eOY28資訊網(wǎng)——每日最新資訊28at.com

Rust 通過獨(dú)特的內(nèi)存管理機(jī)制避免了與 Go 類似的延遲峰值問題。它采用內(nèi)存所有權(quán)的概念,編譯時(shí)就強(qiáng)制執(zhí)行內(nèi)存規(guī)則,自動跟蹤并釋放不再使用的內(nèi)存。這意味著在 Rust 版本中,當(dāng)數(shù)據(jù)從緩存中逐出時(shí),內(nèi)存會立即被釋放,無需等待垃圾收集器介入,從而減少了性能波動。eOY28資訊網(wǎng)——每日最新資訊28at.com

異步 Rust

Rust 的異步編程在穩(wěn)定版中支持不足,社區(qū)庫雖有支持但使用復(fù)雜且錯誤信息難以理解。盡管如此,Discord 團(tuán)隊(duì)決定使用 Rust 的 Nightly 版本,以利用其先進(jìn)的異步特性。Discord 有采用新技術(shù)的歷史,愿意面對前沿技術(shù)的挑戰(zhàn)。他們堅(jiān)持使用 Nightly 版本直至異步特性在 Rust 穩(wěn)定版中成熟,最終這一決策證明是成功的。eOY28資訊網(wǎng)——每日最新資訊28at.com

實(shí)施、負(fù)載測試和啟動

在重寫服務(wù)為 Rust 版本的過程中,我們首先進(jìn)行了簡單的翻譯,然后利用 Rust 的強(qiáng)類型系統(tǒng)和泛型簡化了代碼。Rust 的內(nèi)存安全特性也讓我們?nèi)サ袅?Go 中的一些手動內(nèi)存保護(hù)。負(fù)載測試顯示,Rust 版本在延遲上與 Go 相當(dāng),但沒有出現(xiàn)峰值。eOY28資訊網(wǎng)——每日最新資訊28at.com

盡管只是進(jìn)行了基礎(chǔ)優(yōu)化,Rust 版本的表現(xiàn)已經(jīng)超越了經(jīng)過高度手動調(diào)整的 Go 版本,顯示出 Rust 在編寫高效程序方面的優(yōu)勢。進(jìn)一步的性能優(yōu)化,如使用 BTreeMap 優(yōu)化內(nèi)存使用、替換度量庫、減少內(nèi)存復(fù)制,使得 Rust 版本在延遲、CPU 和內(nèi)存使用上全面超越了 Go。eOY28資訊網(wǎng)——每日最新資訊28at.com

優(yōu)化后,我們順利地將服務(wù)推廣到生產(chǎn)環(huán)境,通過 Canary 節(jié)點(diǎn)測試發(fā)現(xiàn)了一些邊緣情況并進(jìn)行了修復(fù),之后成功地將其擴(kuò)展到了整個(gè)服務(wù)艦隊(duì)。結(jié)果如下:eOY28資訊網(wǎng)——每日最新資訊28at.com

Go 是紫色,Rust 是藍(lán)色。eOY28資訊網(wǎng)——每日最新資訊28at.com

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

提高緩存容量

在 Rust 服務(wù)穩(wěn)定運(yùn)行幾天后,我們決定提高 LRU 緩存的容量。由于 Rust 不受垃圾收集影響,我們能夠安全地增加緩存上限至800萬個(gè)讀取狀態(tài),提升性能。結(jié)果表明,這一變化顯著改善了性能,平均響應(yīng)時(shí)間降至微秒級別,而最大響應(yīng)時(shí)間也僅為毫秒級。eOY28資訊網(wǎng)——每日最新資訊28at.com

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

不斷發(fā)展的生態(tài)系統(tǒng)

最后,Rust 的另一個(gè)優(yōu)點(diǎn)是它擁有快速發(fā)展的生態(tài)系統(tǒng)。最近,tokio(我們使用的異步運(yùn)行時(shí))發(fā)布了 0.2 版。我們進(jìn)行了升級,它為我們帶來了免費(fèi)的 CPU 優(yōu)勢。下面您可以看到,從 16 日左右開始,CPU 一直較低。eOY28資訊網(wǎng)——每日最新資訊28at.com

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

總結(jié)

從 Go 到 Rust 的初始移植于 2019 年 5 月完成。Discord 廣泛使用 Rust 提升性能和安全性,如我們將它用于游戲 SDK、Go Live 的視頻捕獲和編碼、Elixir NIF、多個(gè)后端服務(wù)等。Rust 的優(yōu)勢包括易于重構(gòu)的類型安全特性和強(qiáng)大的生態(tài)系統(tǒng)。eOY28資訊網(wǎng)——每日最新資訊28at.com

本文鏈接:http://m.www897cc.com/showinfo-26-96982-0.html不好意思,沒達(dá)到公司性能目標(biāo),決定從 Go 切換到 Rust

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

上一篇: Gopher的Rust第一課:Rust代碼組織

下一篇: 十大 Python 機(jī)器學(xué)習(xí)庫及其最新進(jìn)展

標(biāo)簽:
  • 熱門焦點(diǎn)
  • 掘力計(jì)劃第 20 期:Flutter 混合開發(fā)的混亂之治

    在掘力計(jì)劃系列活動第20場,《Flutter 開發(fā)實(shí)戰(zhàn)詳解》作者,掘金優(yōu)秀作者,Github GSY 系列目負(fù)責(zé)人戀貓的小郭分享了Flutter 混合開發(fā)的混亂之治。Flutter 基于自研的 Skia 引擎
  • 把LangChain跑起來的三個(gè)方法

    使用LangChain開發(fā)LLM應(yīng)用時(shí),需要機(jī)器進(jìn)行GLM部署,好多同學(xué)第一步就被勸退了,那么如何繞過這個(gè)步驟先學(xué)習(xí)LLM模型的應(yīng)用,對Langchain進(jìn)行快速上手?本片講解3個(gè)把LangChain跑起來
  • Flowable工作流引擎的科普與實(shí)踐

    一.引言當(dāng)我們在日常工作和業(yè)務(wù)中需要進(jìn)行各種審批流程時(shí),可能會面臨一系列技術(shù)和業(yè)務(wù)上的挑戰(zhàn)。手動處理這些審批流程可能會導(dǎo)致開發(fā)成本的增加以及業(yè)務(wù)復(fù)雜度的上升。在這
  • 三言兩語說透柯里化和反柯里化

    JavaScript中的柯里化(Currying)和反柯里化(Uncurrying)是兩種很有用的技術(shù),可以幫助我們寫出更加優(yōu)雅、泛用的函數(shù)。本文將首先介紹柯里化和反柯里化的概念、實(shí)現(xiàn)原理和應(yīng)用
  • 共享單車的故事講到哪了?

    來源丨海克財(cái)經(jīng)與共享充電寶相差不多,共享單車已很久沒有被國內(nèi)熱點(diǎn)新聞關(guān)照到了。除了一再漲價(jià)和用戶直呼用不起了。近日多家媒體再發(fā)報(bào)道稱,成都、天津、鄭州等地多個(gè)共享單
  • 郭明錤稱華為和江淮汽車合作開發(fā)問界MPV,定價(jià)100萬左右、計(jì)劃明年量產(chǎn)

    8 月 1 日消息,郭明錤今天在 Medium 平臺發(fā)布博文,稱華為正在和江淮汽車合作,開發(fā)售價(jià)在 100 萬元的問界 MPV,預(yù)計(jì)在 2024 年第 2 季度量產(chǎn),銷量目標(biāo)為
  • 自研Exynos回歸!三星Galaxy S24系列將提供Exynos和驍龍雙版本

    年初,全新的三星Galaxy S23系列發(fā)布,包含Galaxy S23、Galaxy S23+和Galaxy S23 Ultra三個(gè)版本,全系搭載超頻版驍龍8 Gen 2,雖同樣采用臺積電4nm工藝制
  • Android 14發(fā)布:首批適配機(jī)型公布

    5月11日消息,谷歌在今天凌晨舉行了I/O大會,本次發(fā)布會谷歌帶來了自家的AI語言模型PaLM 2、谷歌Pixel Fold折疊屏、谷歌Pixel 7a手機(jī),同時(shí)發(fā)布了Androi
  • 英特爾Xe-HP項(xiàng)目終止,將專注Xe-HPC/HPG系列顯卡

    據(jù)10 月 31 日消息報(bào)道,英特爾高級副總裁兼加速計(jì)算系統(tǒng)和圖形事業(yè)部總經(jīng)理 表示,Xe-HP“ Arctic Sound” 系列服務(wù)器 GPU 已經(jīng)應(yīng)用于 oneAPI devcloud 云服
Top 日韩成人免费在线_国产成人一二_精品国产免费人成电影在线观..._日本一区二区三区久久久久久久久不
在线观看精品| 久久精品夜色噜噜亚洲a∨| 亚洲国产三级网| 99视频+国产日韩欧美| 久久综合给合久久狠狠色| 久久精品在线视频| 欧美成人亚洲成人日韩成人| 欧美日韩国产小视频| 国产欧美日韩一区二区三区| 极品日韩久久| 一区二区三区欧美视频| 欧美一级视频一区二区| 欧美大片免费观看| 国产精品久久久久久久浪潮网站| 欧美高清日韩| 国产精品成人国产乱一区| 一区二区毛片| 国产日韩视频一区二区三区| 久久九九久精品国产免费直播| 亚洲欧美日本国产有色| 亚洲第一视频网站| 99热精品在线| 欧美一区深夜视频| 欧美激情一级片一区二区| 国产目拍亚洲精品99久久精品| 亚洲国产日韩一区二区| 亚洲欧美中文另类| 欧美激情一级片一区二区| 国产欧美日韩一级| 一本久久a久久免费精品不卡| 久久久久久久久久久久久女国产乱 | 蜜臀av性久久久久蜜臀aⅴ| 欧美日韩视频在线观看一区二区三区| 国产夜色精品一区二区av| 欧美日韩在线视频观看| 一色屋精品视频在线观看网站 | 欧美精品一区三区| 国产精品久久久久久福利一牛影视 | 欧美成人亚洲| 国产一区二区三区四区在线观看| 99综合电影在线视频| 久久一区二区三区超碰国产精品| 国产精品爱啪在线线免费观看| 亚洲国产欧美一区二区三区同亚洲| 欧美亚洲尤物久久| 欧美亚洲第一页| 亚洲日本欧美| 久久这里只精品最新地址| 国产精品自拍视频| 一区二区三区高清| 免费久久99精品国产| 国产午夜亚洲精品羞羞网站| 亚洲影院在线| 欧美日韩在线观看视频| 在线观看亚洲a| 久久国产精品久久国产精品| 国产精品免费看久久久香蕉| 一区二区激情视频| 欧美日韩免费在线视频| 一区二区三区日韩| 欧美韩国日本一区| 亚洲成人在线视频播放| 久久精品国产69国产精品亚洲| 国产精品国产精品国产专区不蜜| 亚洲免费av观看| 欧美激情性爽国产精品17p| 在线观看不卡| 久久在线视频| 在线精品国产欧美| 噜噜噜噜噜久久久久久91| 国产一区二区三区成人欧美日韩在线观看 | 在线视频国产日韩| 久久成人一区二区| 国产一区二区成人久久免费影院| 亚洲欧美日韩视频一区| 国产精品久久毛片a| 亚洲一区二区三区精品在线| 欧美三区在线观看| 中日韩美女免费视频网址在线观看| 欧美日本久久| 一区二区三区四区五区精品| 欧美三级网址| 亚洲免费小视频| 国产精品五月天| 欧美伊人精品成人久久综合97 | 国产精品成人午夜| 亚洲视频综合| 国产精品裸体一区二区三区| 亚洲一区二区三区乱码aⅴ蜜桃女 亚洲一区二区三区乱码aⅴ | 亚洲二区三区四区| 欧美aⅴ99久久黑人专区| 亚洲国产日韩在线一区模特| 在线观看一区二区精品视频| 开元免费观看欧美电视剧网站| 亚洲第一中文字幕| 欧美激情精品| 中文日韩在线| 国产欧美日韩麻豆91| 久久久久成人精品| 亚洲国产精品福利| 欧美精品日韩| 一区二区三区视频免费在线观看 | 国产精品视频你懂的| 欧美在线播放| 亚洲国产成人不卡| 欧美日本高清一区| 亚洲欧美日韩精品久久| 国内激情久久| 欧美高清不卡在线| 亚洲午夜精品久久久久久app| 国产乱肥老妇国产一区二| 亚洲成人在线视频网站| 国产一区二区在线观看免费播放| 一区二区三区四区五区视频 | 国产日韩欧美亚洲一区| 午夜一级久久| 狠狠色丁香婷婷综合影院| 免费成人网www| 一区二区三区成人| 国产日韩欧美三区| 欧美aa国产视频| 亚洲深夜福利视频| 国产一区二区三区四区三区四| 久久久精品免费视频| 亚洲开发第一视频在线播放| 欧美午夜性色大片在线观看| 久久精品国产久精国产爱| 亚洲人被黑人高潮完整版| 国产精品毛片| 久久综合久久久久88| 亚洲图片激情小说| 狠狠色狠色综合曰曰| 欧美日韩另类视频| 欧美一区久久| 亚洲免费观看| 国产一区二区三区直播精品电影 | 亚洲国产精品www| 香蕉久久一区二区不卡无毒影院| 欧美激情第4页| 在线 亚洲欧美在线综合一区| 欧美人与禽性xxxxx杂性| 欧美在线视频日韩| 亚洲另类春色国产| 国产一区视频观看| 欧美四级在线观看| 老牛嫩草一区二区三区日本| 亚洲一区二区在线视频 | 性色一区二区三区| 亚洲另类在线视频| 激情久久一区| 国产精品试看| 欧美日韩精品二区| 蜜桃av噜噜一区二区三区| 午夜精品久久久久久久| 日韩视频二区| 在线成人免费视频| 国产热re99久久6国产精品| 欧美日韩伦理在线| 农夫在线精品视频免费观看| 欧美一区二区三区在线| 中文一区二区| 日韩视频免费在线观看| 玉米视频成人免费看| 国产日韩亚洲| 国产精品视频在线观看| 欧美日韩性生活视频| 欧美成人影音| 久久午夜精品一区二区| 欧美一区二区三区四区在线| 这里只有精品电影| 亚洲欧洲日本mm| 伊人久久大香线蕉av超碰演员| 国产精品一区免费在线观看| 欧美日韩在线观看视频| 欧美国产精品一区| 久热精品在线视频| 久久久精品日韩| 欧美影院在线播放| 午夜久久久久| 亚洲欧美日韩国产中文| 中文av一区特黄| 99精品视频免费观看| 亚洲精品久久久久| 亚洲国产精品久久91精品| 伊人久久噜噜噜躁狠狠躁| 狠狠色综合网| 国产在线视频不卡二| 国产欧美精品xxxx另类| 国产精品日韩专区| 国产精品久久久久久久免费软件| 欧美日韩在线播| 欧美午夜宅男影院| 国产精品扒开腿做爽爽爽软件| 欧美日一区二区在线观看 | 欧美日韩在线观看视频| 欧美精品在线一区二区| 欧美高清在线视频观看不卡| 免费视频一区| 欧美大色视频| 欧美人与性动交cc0o| 欧美人与性动交a欧美精品| 欧美日韩岛国| 欧美视频一区二区三区…| 欧美午夜精品久久久久久人妖|