最初のクライアントブログでお伝えしていたように、クライアントのパフォーマンスの問題を解決する最善の方法はクライアントで利用されているプラグインとEmberアプリの数を減らして整理統合していくことだと私たちは考えています。
ご存じない方のために説明すると、「プラグイン」とはクライアントのコードを複数の便利な塊に分けることができるツールです。そして「Emberアプリ」はクライアントのユーザーインターフェースに利用されるものです。
この目標に向かって私たちは着実に作業を進めてきました。以下のチャートはプラグイン(plugin)とEmberアプリ(ember apps)の合計数の変遷を示しています。
上の表を見て、「それで、クライアントのパフォーマンスがどれくらい改善したの?」と思った方も多いでしょう。その答えは複雑になってしまうので大まかに説明しますと、プラグインとEmberアプリの数が少ないほどクライアントのコードの効率が高まります。コードの無駄が少ないほどパフォーマンスが上がり、開発者にとってクライアントの維持も容易になります。
作業の効果を測定するために、私たちはクライアントの起動時間を追跡しています。以下でそのデータのグラフを見ることができます。
見ての通りこの数ヶ月間、ブートストラップタイム(Bootstrap time)はほとんど一定を保っています。私たちが行っている作業に内在するリスクを考えれば、これはまずまずの成功だと考えています。大きなコードの塊を入れ替えてプラグインをつなぎ直す際は、慎重に行わなければ予期せぬ問題が発生します。しかし、これまでのところはそのような問題は発生していません。
クライアントが起動されるたびにプラグインの負荷をより賢く指定することが可能な新たなソリューションを開発したので、これから数パッチの内にブートストラップタイムはさらに改善していくものと期待しています(このトピックの詳細については前回のクライアントブログにある「アフィニティの問題」のセクションをご覧ください) 。
現時点では、あと数ヶ月は整理統合の作業を続ける予定です。なぜなら、全体的なコード環境のクリーンアップを行うことで不具合やメモリ・リーク、クラッシュの修正が容易になることから、プラグインとEmberアプリの数を減らすことで長期的に大きなメリットが得られると考えているからです。
不具合とクラッシュと言えば、最近リリースされた修正についてお話ししましょう。
クライアントチームは折を見て、この数ヶ月間に大量の不具合を修正してきました。今後、LoLのパッチノート内でクライアントのバグ修正専用のセクションが用意される予定です。
今年の初め以降、チームがパッチごとに修正してきたクライアントの不具合のリストは以下のとおりです。
リストは以上です!また、クライアントの右下にある「バグ」ボタンをクリックしてもフィードバックを送信できます。
このクライアントの作業を続けながら、私たちは「リーグ・クライアントはプレイヤーのために十分に価値のあるものになっているか?」という根本的な質問を自らに問いかけ続けます。
答えはもちろん、「そうなっていない」です。少なくとも、今はまだ。
解決すべき不具合、回避すべきクラッシュ、排除すべき根深いアーキテクチャの問題がまだまだ存在します。今年の初めに始まった作業は、「クライアントはプレイヤーの皆さんのために十分に価値のあるものになっているか?」という質問に、自信を持って「はい」と答えられるまで続きます。
その状態に到達するまでには時間がかかりますが、今後も皆さんに進捗状況をお伝えしていきます。これから数パッチはプラグインとEmberアプリの整理統合を続け、見つけたバグを修正していきます。次に進捗状況をお伝えする頃には、このキャンペーンも新たなフェーズに入る準備が整っているでしょう。次のフェーズでは特に、チャンピオン選択のレスポンスの改善に集中する予定です。
繰り返しになりますが、いつもプレイしていただきありがとうございます。2ヵ月後に新たなクライアントブログでお会いしましょう。