States」が十分に高速化できない問題が明らかになった。開発チームは既存のコードをさらに改善することで対応しようとした。Rust言語で再実装したところ、最適化を施す以前からパフォーマンスが向上した。開発チームがその理由を語る。});この記事は会員限定です。会員登録(無料)すると全てご覧いただけます。States」をRust言語で再実装し、その結果サービスのパフォーマンスが大幅に向上したと公式ブログで明らかにした。StatesサービスはこれまでGo言語で実装されていた。StatesをRustで再実装しようとしたのか、どのように再実装したのか、再実装によってどのようにパフォーマンスが向上したかを解説した。Statesサービスの目的は、Discordユーザーがどのチャンネルのどのメッセージを読んだのかを追跡することだ。Statesにアクセスする。Statesはアクセス頻度が非常に高い。同社は、Discordのエクスペリエンスが極めて軽快であることを目指している。Statesサービスは、高速性が必要だという要件には十分対応できていなかった。平均すれば高速に動作していたものの、数分ごとに平均応答時間が急に大きくなり、ユーザーエクスペリエンスを損なっていた。調査したところ、これはGoの中核機能であるメモリモデルとガベージコレクタ(GC)に起因することが分かった。Goで性能が低下したのはなぜかGoで記述したサービスがパフォーマンス目標を達成できなかった理由を理解するには、まず、サービスのデータ構造やスケール、アクセスパターン、アーキテクチャについて確認する必要がある。