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

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

卡卷网10个月前 (01-09)每日看点261

<>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

分享给朋友:

相关文章

为什么大家不再提 5G 了?

现在看来,只有美国那种5g的思路是对的。美国的运营商一开始就发现5g和4g并没有质的飞跃,无非就是提升频率/降低穿透力/提升带宽的故事。而美国运营商又是自负盈亏,因此一开始就仅在人口高密度地区或富裕地区布置5g。虽然说人家4g也菜,但是人家...

感觉手机配置都差不多,为什么有的手机能卖2k-3k,而有的手机却能卖到6k-8k?

感觉手机配置都差不多,为什么有的手机能卖2k-3k,而有的手机却能卖到6k-8k?

与所有的商品一样,手机的价格,也是由它的成本所决定的。虽然看起来3000元的手机和6000的手机配置差不多,甚至处理器都可能是同一个,但在很多大家容易忽略的地方,决定了两者价格的不同:例如手机的外观,塑料的机身,与素皮机身和玻璃机身就完全不...

天涯论坛关闭后,除了知乎,大家都在逛什么?

天涯论坛关闭后,除了知乎,大家都在逛什么?

天涯神贴合集完整版,给大家整理好了!那年大学,打开天涯,感觉打开了一片新天地,里面什么样的人都有,有大神也有蛇神,比某乎好太多了,可惜后面关了很多年前,天涯社区曾出现了不少深受欢迎的帖子,成功地预言了许多形势和事件。这些帖子因此被冠以“天涯...

到什么程度才叫精通 Linux?

我们医院有个大牛。有一次,我的Linux电脑下载了Microsoft office 365 不能运行。于是买了2.5升装康师傅冰红茶找到大牛,让他帮忙解决。大牛白了我一眼,让我把安装包发给他,只见他输入一个命令将安装包打开,整个屏幕都是数字...

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

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

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

WordPress建站同时面向B端和C端,有什么好的解决方案?

这个很容易实现呀,只不过需要自己开发,整体用权限管理就可以实现了,B端和C端是不同用户权限,C端能看到的菜单入口和B端不一样就行了。技术层面实现没问题的,只不过就是看你们的技术能力和投入了 ,这样的需求应该没有现成的开源插件。只能找人定制开...

发表评论

访客

看不清,换一张

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