Rust口碑不错,为何学的人却很少?
作者:卡卷网发布时间:2025-01-09 18:33浏览数量:150次评论数量:0次
<>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。
END
免责声明:本文由卡卷网编辑并发布,但不代表本站的观点和立场,只提供分享给大家。
- 上一篇:物联网平台市场崩了吗?
- 下一篇:微软.net的asp、ef框架为什么都要自己写?
相关推荐
最新文章
随机文章
广告位

你 发表评论:
欢迎