WebシステムのパフォーマンスとGo

By karupanerura

Elevator Pitch

本セッションではGoを使ったWebシステムをどのように効率化していけば良いのかを、弊社DeNAのサマーインターンシップの課題を例に、その課題作成担当のひとりである私が30分で端的にわかりやすく解説します。

Description

GoはLL(Lightweight-Language)が主たる実装言語とされていたWeb業界において高速な言語と評価されています。 実際に、コンピューティングの効率はLLと比較すると大変良い性能を発揮するケースがほとんどでしょう。

その一方でWebシステムは基本的にはデータストレージとのI/Oがその処理の中心となることがほとんどでしょう。 リクエストを処理する全体時間のうちコンピューティングに割く時間は限定的です。 つまり、コンピューティングの高速化だけを期待してGoを導入しても、Webシステムのパフォーマンスに対して与える影響は限られてしまう場合が多いでしょう。 しかし、Goを使いio package, sync package, そしてGoroutineとChannelの仕組みをうまく活用することで、様々なケースに対してioの面でも効率的な処理を簡単に記述できることもまた事実です。

本セッションではGoを使ったWebシステムをどのように効率化していけば良いのかを、弊社DeNAのサマーインターンシップの課題を例に、その課題作成担当のひとりである私が30分で端的にわかりやすく解説します。