なんとなく「最近のコンピュータは速いから、細かい最適化なんてあんまり意味ないよね?」って思ってたこと、ない?💭
わたしもそう思ってたんだけど、TikTokの話を聞いてちょっと考え変わったんだ✨
インターンがやっただけでこんなに変わるの?
TikTokってすごい規模だから、サーバーたくさん使ってるのは想像つくよね👀
そんな中で、インターンの子がGoで書かれたCPUに負荷の高いマイクロサービスの一部をRustに書き換えたら、いろいろ数字がガラッと変わったんだって❣️
- CPU使用率が78.3% → 52%に減少
- メモリ使用率が7.4% → 2.07%に激減
- p99レイテンシ(処理の遅延の指標)が19.87ms → 4.79msに短縮
- さらにトラフィック処理能力がなんと2倍になったらしいの😳
たったこれだけの部分を書き換えただけで、すごく効率が良くなったんだよね💡
節約できたのはどれくらい?
これだけシステムが軽くなれば、必要なvCPUコアの数も減らせるから、サーバーの維持費がかなり安くなるわけだ🥺
TikTokの規模だからって「30万ドル(約3000万円)くらいは誤差じゃない?」って思いそうだけど、これはたった一部のマイクロサービスをインターンが書き換えた成果なんだ✨
だから、開発者の時間は確かに大事だけど、無駄にしないでちゃんと見直す価値もあるんだなーって改めて気づかされたよ😆
わたしが思ったこと
Goも決して遅い言語じゃないけど、Rustの性能を活かしたらこんなに効率が変わるんだね🎀
「最適化は面倒だからやらなくていいや」って思いがちだけど、こういう発見があるとやっぱりコードを見直すのって大事なんだなぁって感じる🌸
ちょっとした工夫で大きな節約やパフォーマンスアップにつながるから、エンジニアさんはもちろんだけど、わたしたちも知らない間に損してることって意外とあるかも?💬
なんか、ちょっとお得な話みたいで嬉しいね〜✨
コメント
グレース
無駄な最適化は早計だから、まず測ってからやればこういう結果が出るよ。
ロバート
規模が大きいほど節約の効果も大きいんだよ、数ドルケチるためにRustに書き直すわけじゃないし。
ハンナ
ブログ記事を直接リンクすればいいのに、この再利用されたLinkedIn記事は微妙すぎる。
ノーラン
最初からGoでちゃんと書かれてなかったんじゃないかな。
サム
コンピューターが速いから最適化不要なんて言う奴、マジで頭おかしいよ。
クリス
この「ニュース」の元は、すごいインターンだって自称する人のブログの内容をLinkedInでシェアしたものだよ。
リリー
CPU使用率が高かったのはGCのせい? 著者はflame graphを言及したけど見せてないね。 Rustに移る判断基準も気になる。
クロエ
TikTokにとっては誤差の範囲でしょうね。
レオ
「言語Xに変えたらすごく速くなった」って聞くけど、多くは元のコードがダメダメだったからリライトした効果だよ。
ミア
最適化に天才はいらない、時間と余裕があれば誰でもできる。 ただ急いで書いたコードは効率悪いことが多い。
キンバリー
記事読まなくてもわかる、結局はアルゴリズムや戦略が大事で言語は二の次だってこと。
エイダン
俺も初めての仕事で2MBのバッファを先に確保して使い回してた。 バッチ処理のコストが90%減ったけど、課金モデルがヘンで赤字だったw
ロバート
高QPSのマイクロサービスはシリアライズや暗号化、スレッド切り替えにリソース使うからね。 GoogleやAmazonは専門チームがいるよ。
クリス
1) 暗号化はハードウェアにどんどん移されてる。 2)「ゼロコピー」技術も研究中で、ネットカードが直接アプリのバッファに読み書きするんだ。 3) スレッド切り替えはパフォーマンスに影響するけど、高級言語のプログラマは気づかない。 RustやC++はそこを制御できるから便利。
レオ
反論すると、TikTokはRustの保守要員を増やすコストがかかるかもしれないけど、ほとんどの会社はジェネラリスト採用だからそこまで大きな問題じゃないと思う。 ただRustが社内の一部だけだと摩擦が起きそうだけど、その戦略があるならむしろ良いことだね。










