当前位置:首页 > 每日看点 > 正文内容

Rust口碑不错,为何学的人却很少?

卡卷网7个月前 (01-09)每日看点224

<>Discord迁移到Rust,实现性能突破

为了解决"ReadStates"服务的性能问题,Discord从Go语言迁移到Rust语言,这个服务负责追踪用户已读的频道和消息,所以对响应速度有超高要求。然而,Go的收集器导致了性能不稳定,这对用户体验的影响太大!

如下图,Go服务每两分钟就出现峰值。

Go的收集器(GC)每2分钟强制执行一次,GC需扫描整个LRU缓存来识别无用内存,性能会短暂下降,所以出现了性能峰值。

调整GC频率以无效告终,因为内存分配速度不足以触发更频繁的GC。

减小LRU缓存可以减少GC峰值次数,但会增加缓存未命中率,从而增加延迟。

最终Discord决定将服务切换到Rust,希望利用Rust的无GC解决性能问题,提升用户体验。

重写Rust版本服务

负载显示,Rust版本在延迟上与Go相当,但没有出现峰值。

使用TreeMap数据结构,减少内存复制,使得Rust版本在延迟、CPU使用率和内存使用上全面超越了Go。

最终结果如下:

Go是紫色,Rust是蓝色,可以说Rust把Go按在地上摩擦。

用上Tokio框架后,CPU使用率进一步降低(20%->10%)。

总结

未来,Discord基于Rust的服务有望持续优化,进一步提升性能。或许会吸引更多类似的项目迁移到Rust。

扫描二维码推送至手机访问。

版权声明:本文由卡卷网发布,如需转载请注明出处。

本文链接:https://www.kajuan.net/ttnews/2025/01/7712.html

分享给朋友:

相关文章

百度收录又开始“作”了,用“快速抓取”替代“快速收录”

百度收录又开始“作”了,用“快速抓取”替代“快速收录”

作为国内不得不用的知名搜索引擎“百度”,对于网站收录的规则,又有新的升级。以前有个快速收录,我们可以通过WordPress插件,免费快速提交给百度。但是现在这个功能没了,取而代之的是“快速抓取”,如下图想要使用此功能,需要加入“VIP俱乐部...

什么软件可以看电视直播?

什么软件可以看电视直播?

2024年9月6日最新更新:本文列举的所有看电视直播、或流媒体影视资源点播的软件,我这两天又重新梳理成最新版本,最大程度保证可用性。获取方式见文末图片,或见评论。后续我也将持续更新,文章是旧的软件也会是新的,保证都是最新可用版本。作为一个急...

网易云音乐里有哪些打动你的评论?

1.“如果我被强奸了,有人说我会失去贞操。”“我怎么失去贞操了呢?” “我的贞操不在我的阴道里。”“失去贞操的是强奸犯,而不是被强奸的人。”2.但要记得那年海边的烟火,我们不拘一格 ,嘲笑过生活。………网易云热评《这样就很好》3.“ 我们在...

开发了个小程序,咋推广呢?

要是开发了个小程序,想推广的话,可以先从自己的朋友圈子下手,让亲戚朋友都帮忙转发宣传,这样能先有点人气。然后去一些跟你的小程序相关的论坛、社区啥的,发帖子介绍介绍,吸引有兴趣的人。还能找些网红、博主合作,要是他们觉得你的小程序不错,帮忙推荐...

我爸讽刺我,写个破代码一年才十几万,他在工地带50个人,让我回去跟他干,写代码没出路,我该怎么选择?

我跟你一样的情况,本人现身说法,千万不要跟你爸干,我就是反面教材,现在想回去都回不去了,快十年没写代码了,再就是岁数大了,38岁了,35岁以上的码农根本就没公司愿意要,而且会受歧视。工程不好干,首先就是不合法,在法律层面,根本就没有包工头的...

在 Istio、Linkerd 和 Cilium 之间,哪种服务网格在性能上表现最佳?

在 Istio、Linkerd 和 Cilium 之间,哪种服务网格在性能上表现最佳?

在讨论服务网格之前,先理解一下为什么我们需要它。现代微服务架构意味着将应用拆分为多个小型、独立的服务,这些服务可以独立开发、部署和扩展。然而,服务之间的通信和管理成了巨大的挑战,例如如何保证安全的通信、负载均衡、监控与可观测性等。服务网格...

发表评论

访客

看不清,换一张

◎欢迎参与讨论,请在这里发表您的看法和观点。