改善の進め方

Optimization

パフォーマンス改善はユーザーの利用体験を改善します。「パフォーマンス」にはページの表示速度だけでなく、閲覧中の操作のレスポンス、低速回線やオフライン時の動作も含まれます。

パフォーマンスを改善するためには、計測・目標設定・改善計画・実装・効果検証(計測)のプロセスを繰り返すことが重要です。実際にパフォーマンスを改善したAmebaマンガの事例が参考になります。

パフォーマンス改善の進め方は計測・調査し、問題となる箇所の計算量をいかに効率的にできるかという点ですべてのアプリケーションに通じます。ここではWebアプリケーションを例に解説します。

計測

まず最初に行うべきは計測です。数値が取れていないと現状把握ができないため、強み・弱みもわからず目標設定ができません。また修正した内容が良かったのか、悪かったのかも検証できません。

計測をする際には様々なツールがありますが、収集されるデータは大きく分けてフィールドデータとラボデータがあります。

フィールドデータは実際に利用者が体験したパフォーマンスであり、真の値に近いものと考えられるでしょう。ただし、実際に取得される環境は様々であったり、エラーが発生した場合は送信されなかったりするためデバッグには向いていません。

ラボデータはパフォーマンス計測に影響するパラメーターのいくつかを固定し、計測するためパフォーマンス遅延の原因調査や定点観測に向いています。ただしそのサイトのパフォーマンスのごく一部しか表していないため、取得したパフォーマンス値が良い場合でもサイト全体のパフォーマンスが良い保証はないことに注意が必要です。

ユーザーの利用体験を向上させるには実際のパフォーマンスを見る必要があるので、基本的にはフィールドデータが必要です。これはビジネス指標との相関を見るうえでも重要です。問題点を発見・特定、改善効果を具体的に調べたい場合には、各種パラメーターを固定できるラボツールを使うと良いしょう。

どのようにツールを使い分けるかはサイトの特性にもよります。理想的にはどちらのデータも取得しモニタリングすると良いですが、ページの種類が利用者の属性が多様な場合にはフィールドデータがより意味をなしますし、ページ種類がある程度管理できる場合はラボツールで代表的なページ群を監視しておけば十分かもしれません。

パフォーマンスを計測するツールの詳細については、以下のスライドをご覧ください。

目標設定

ある程度計測ができた段階で目標設定に移ります。目標設定をするときには、競合と比較する場合と定義された目標値に準じる場合があります。ニュースサイトやECサイトのように競合とほぼ同様のサービスを提供しており、かつパフォーマンスがビジネス指標に大きく影響しそうな場合には、競合も同時に計測しましょう。競合より20%速いと有意に差が出るという研究もあります。

定義された目標値に従う方法もまた有効です。最低限の品質を提供しマイナスを減らせます。基準値があるため劣化の検知も容易です。代表的なものにWeb Vitalsがあり、LighthouseやSpeedCurveなど様々なツールも対応しています。毎年アップデートが計画されているので、それに従っていく方法は有効です。

ただし各サービスに固有の重要指標がある場合には個別に計測、目標設定する必要があります。例えば、いいねや購読ボタンなどのアクションにたどり着くまでのフローが重要な場合には、そこまでのステップ数や経過時間を目標として設定しておく必要があるでしょう。

パフォーマンス目標設定については、以下のスライドをご覧ください。

改善計画

計測と目標設定ができたら、実装へ入る前に改善計画を作成します。ここでは何がボトルネックで、どういう方法で解決していくか記録しておくと良いでしょう。その際には複数の解決オプションをリストアップし、なぜそのプランが選択されたのか記載しておくと、効果検証の際に役立ちます。 狙い通り改善できればその手順は次回の改善にも活かせますし、もしうまくいかなかった場合には他のオプションも含めて再度改善の手を打つことができます。

実装

計画ができたら実装を進めます。リスクや影響度の大きさに応じて段階的にリリースすると良いでしょう。この際にはできればサーバ側で判定できる手法を利用することをおすすめします。クライアントサイドで判定すると表示が遅延したり、レイアウトシフトが発生したりと正確に影響を測れないことがあるためです。

実装に致命的な問題がないか把握するためには、Blue-Greenでデプロイすると良いでしょう。セッションごとの効果を検証したい場合には、HTTP HeadersやCookieなどを利用してサーバから配信する内容を変更すると良いでしょう。

効果検証

リリースされ、ある程度結果が見られるようになったら、効果検証をします。検証する際には最初に設定した計測ツールで変化を見ると効率が良いでしょう。うまく効果が出た場合には、目標値を上方修正しても良いでしょう。うまく効果が出なかった場合には改善計画を再調整して、実装し直してください。