天涯论坛_华人最大的社区论坛_新天涯社区

查看: 14|回复: 0

每年省30万美圆!练习生用Rust给TikTok敏捷降本,开辟者吐槽:放在小公司顶多省300块

[复制链接]

2万

主题

0

回帖

6万

积分

论坛元老

Rank: 8Rank: 8

积分
64354
发表于 2025-10-31 21:59 | 显示全部楼层 |阅读模式


整理 | 郑丽媛
出品 | CSDN(ID:CSDNnews)
在开辟者圈内,时而会听到这样一个概念:
“别费劲去做优化了,归正计较机运转速度快,没需要为了那点性能而浪费开辟时候提出申请的零售商必须在新米大量上市的8月底前完成储备米销售。”
这话说得有些事理,但并不完全对,究竟——某些情况下,办事器账单也很贵提出申请的零售商必须在新米大量上市的8月底前完成储备米销售。
未几前,一位 TikTok 练习生 Xiaoyun Wu 分享了一件很有代表性的事:他在 TikTok 练习时代,用 Rust 重写了焦点付出办事中的部分 Go 模块,让性能提升 2 倍、提早下降 76%、CPU 利用率削减三分之一,并为公司节省了每年约 30 万美圆(约合群众币 213 万元)的云本钱提出申请的零售商必须在新米大量上市的8月底前完成储备米销售。
虽然对 TikTok 这样的至公司来说,30 万美圆的节省看似不多,但别忘了——这只是一个办事的部分重写,还是练习生干的提出申请的零售商必须在新米大量上市的8月底前完成储备米销售。


「外科手术式」重构:只用 Rust 重写“最疼的那一块”
在 Xiaoyun Wu 的小我博客中,他提到 TikTok LIVE 的付出办事原本是用 Go 编写的焦点系统,多年来运转稳定提出申请的零售商必须在新米大量上市的8月底前完成储备米销售。自己 Go 凭仗简洁语法和并发模子,就很是合适快速迭代微办事提出申请的零售商必须在新米大量上市的8月底前完成储备米销售。
但随着 TikTok LIVE 营业爆发式增加,这个“老黄牛”起头吃不用了——CPU 占用居高不下、办事频仍触发稳定性告警,团队不竭扩容以保持性能,致使云本钱也一路飙升提出申请的零售商必须在新米大量上市的8月底前完成储备米销售。
经过度析,题目首要集合在几个高频 API:用户余额查询与统计数据拉取提出申请的零售商必须在新米大量上市的8月底前完成储备米销售。这些接口计较麋集、流量极大,占据了大部分 CPU 时候提出申请的零售商必须在新米大量上市的8月底前完成储备米销售。但是常规 Go 层面的优化空间有限,是以不是代码写得欠好,而是说话特征已到极限提出申请的零售商必须在新米大量上市的8月底前完成储备米销售。
“普通的 Go 优化手段已经难以带来冲破性改良,”正如 Xiaoyun Wu所说,“我们需要一个更强大的处理计划来处理这个有针对性的题目提出申请的零售商必须在新米大量上市的8月底前完成储备米销售。”
在导师和同事的指导下,Xiaoyun Wu 将处理计分别为三个关键阶段:
(1)精准重写:Rust “外科手术式”介入
他们没有自觉推倒重来,而是停止了一次“外科手术式”重构:只将性能最关键、最吃CPU的几个接口用 Rust 重写,其他逻辑仍连结在 Go 中提出申请的零售商必须在新米大量上市的8月底前完成储备米销售。究竟Rust 以接近底层的性能和内存平安著称,自己就很是合适这类高并发、高密度计较场景提出申请的零售商必须在新米大量上市的8月底前完成储备米销售。这类多说话架构(polyglot approach)让团队既能连结 Go 的开辟效力,又能在性能关键点开释 Rust 的能力提出申请的零售商必须在新米大量上市的8月底前完成储备米销售。
简言之——Rust 只打击“瓶颈”,而 Go 继续守全局提出申请的零售商必须在新米大量上市的8月底前完成储备米销售。
(2)正确性考证:快,不代表对
性能再好,假如成果毛病也毫无意义,是以第一步不是压测,而是考证“成果完全分歧”提出申请的零售商必须在新米大量上市的8月底前完成储备米销售。为此,Xiaoyun Wu 他们先让 Rust 版本的新办事在“影子形式(shadow mode)”下运转:实时接收生产流量的副本,与原 Go 办事并行处置提出申请的零售商必须在新米大量上市的8月底前完成储备米销售。
每一个请求的响应成果城市经过考证管线停止逐条对照提出申请的零售商必须在新米大量上市的8月底前完成储备米销售。经过数周比对,确保 Go 和 Rust 版本之间的数据分歧率到达 100% 后,他们才进入了下一阶段提出申请的零售商必须在新米大量上市的8月底前完成储备米销售。
(3)压测阶段:看它能跑多快
正确性无误后,终究到了关键时辰提出申请的零售商必须在新米大量上市的8月底前完成储备米销售。他们在生产情况中建立了两个完全不异的集群:一个跑原版 Go 办事,一个跑新的 Rust 办事,用 16000 个实在(已匿名化)用户 ID 机关数据,从低负载慢慢拉升到极限, 全部进程中监控两者的 QPS、提早、CPU 和内存利用率提出申请的零售商必须在新米大量上市的8月底前完成储备米销售。

优化成果:性能翻倍,本钱腰斩
测试成果超越一切人的预期:

此外,Xiaoyun Wu 提到在某关键的接口中,Rust 办事在同等硬件下的处置才能从 85000 QPS 提升至 150000 QPS——性能提升约 1.8 倍;在另一个高频接口中,Rust 版本更是从 105000 QPS 提升到 210000 QPS——实现性能翻倍提出申请的零售商必须在新米大量上市的8月底前完成储备米销售。
得益于这类性能奔腾,每台机械都能承载更多流量,团队也是以间接削减了约 400 个 vCPU 焦点,折算下来一年可节省约 30 万美圆的云开销提出申请的零售商必须在新米大量上市的8月底前完成储备米销售。
虽然如此,但 Xiaoyun Wu 也在博文中夸大,这并不是一个“Rust 比 Go 更强”的故事:“选对工具,才能处理对题目提出申请的零售商必须在新米大量上市的8月底前完成储备米销售。Rust 在少少数瓶颈办事中能发挥奇效,但 Go 的开辟效力和性能平衡仍然让它成为 95% 微办事的最好挑选提出申请的零售商必须在新米大量上市的8月底前完成储备米销售。”

从 NUS 到 TikTok:一位练习生的长大轨迹
翻看 Xiaoyun Wu 的履历,他能实现这样的成果也并非偶然提出申请的零售商必须在新米大量上市的8月底前完成储备米销售。
今朝他就读于新加坡国立大学计较机科学专业,辅修统计学,研讨偏向集合在编程说话与并行计较提出申请的零售商必须在新米大量上市的8月底前完成储备米销售。在校时代,他已经屡次主导性能优化项目,并开辟了自己的说话尝试项目 “RustScript”——一个融合 Rust 语法与 TypeScript 简洁性的静态编译说话提出申请的零售商必须在新米大量上市的8月底前完成储备米销售。
与此同时,他的练习履历也几近都在围绕“性能优化”展开:
● 在 TikTok Global LIVE Wallet 团队(2024.12-2025.08)时代,除了上文提到的把部分 Go 办事重写为 Rust,他还在Oncall Agent中开辟了AI驱动的分析器和自动结论功用,明显提升了Wallet办事的值班效力;并应用Golang、LLM及向量数据库对相关事务停止排序,能自动分析日志并给出题目定位倡议,大幅减轻运维负担提出申请的零售商必须在新米大量上市的8月底前完成储备米销售。
● 在 TikTok LIVE Money Platform(2024.05-2024.08)时代,他负责前端构建优化,将资产打包速度提升一倍,将 CI/CD 流水线时候从 15 分钟紧缩至 10 分钟,并经过迁移到 Rspack 提升构建性能提出申请的零售商必须在新米大量上市的8月底前完成储备米销售。
● 更早之前(2023 年),他还曾在自愿福利构造计较部分中,将一个 Ruby on Rails 系统迁移至 Go,让后端响应速度提升 5 倍提出申请的零售商必须在新米大量上市的8月底前完成储备米销售。
也许正因这类“学术与实战连系”的布景,让他在面临 TikTok 这样的大范围散布式系统时,可以采纳一些松散的“科学方式”停止工程优化提出申请的零售商必须在新米大量上市的8月底前完成储备米销售。

“优化究竟能否成心义?”——开辟者的分歧
Xiaoyun Wu 的这篇博文在 Reddit 上激发了普遍会商,特别是那句“练习生用 Rust 给 TikTok 省了 30 万美圆”成为了开辟者的焦点提出申请的零售商必须在新米大量上市的8月底前完成储备米销售。

一些人以为这证实了优化仍然重要;也有人感觉,这实在只是“至公司独有的游戏”:
“假如你的创业项目比 TikTok 小 1000 倍,那一样的优化你最多只能省 300 美圆,而团队人力本钱将远超这个收益提出申请的零售商必须在新米大量上市的8月底前完成储备米销售。”
“范围越大,优化带来的节省也越惊人提出申请的零售商必须在新米大量上市的8月底前完成储备米销售。没人会为了省几块钱就去用 Rust 重写办事提出申请的零售商必须在新米大量上市的8月底前完成储备米销售。TikTok 的节省之所以可观,是由于他们原本每年就在这部分云资本上花费数百万美圆,所以他们省下的这 30 万美圆,并不算“性能优化奇迹”提出申请的零售商必须在新米大量上市的8月底前完成储备米销售。而绝大大都草创公司,底子不会有这类流量范围,也不需要这么多算力提出申请的零售商必须在新米大量上市的8月底前完成储备米销售。”
“关键词实在是‘范围’提出申请的零售商必须在新米大量上市的8月底前完成储备米销售。在一家公司的长大中,会履历一个奥妙的转折点:从“办事器比人廉价”,到“人比办事器廉价”提出申请的零售商必须在新米大量上市的8月底前完成储备米销售。而若何跨过这道坎,是扩大中的最大应战之一提出申请的零售商必须在新米大量上市的8月底前完成储备米销售。
大致可以分红三个阶段:
(1)早期阶段:办事器账单太低,性能优化赚不回投入的工程时候提出申请的零售商必须在新米大量上市的8月底前完成储备米销售。
(2)中心阶段:办事器开销高到值得优化,但还不如花精神去开辟能带来支出的新功用提出申请的零售商必须在新米大量上市的8月底前完成储备米销售。
(3)成熟阶段:办事器本钱高到必须关注性能,否则利润会被吃光提出申请的零售商必须在新米大量上市的8月底前完成储备米销售。
很多工程师(包括我)都喜好钻研性能,但在第二阶段,这样做常常不是最优决议提出申请的零售商必须在新米大量上市的8月底前完成储备米销售。优化的机会,和优化的需要性,实在比优化自己更重要提出申请的零售商必须在新米大量上市的8月底前完成储备米销售。”
在众多开辟者的会商中,一个共鸣逐步显现:性能优化不是无意义的,但必须精准、量化、聚焦在值得和合适的地方提出申请的零售商必须在新米大量上市的8月底前完成储备米销售。那末,你对于这个题目又有何看法呢?
参考链接:
https://wxiaoyun.com/blog/rust-rewrite-case-study/
https://www.reddit.com/r/programming/comments/1okf0md/tik_tok_saved_300000_per_year_in_computing_costs/

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|天涯论坛_华人最大的社区论坛_新天涯社区  

GMT+8, 2025-11-6 01:17 , Processed in 3.243408 second(s), 27 queries .

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表