SpeedCurveの結果は、なぜ他のテスト結果と異なる? 【中級】
Written by Mark Zeman
自分のPCのローカルマシンでのテストは、SpeedCurve(スピードカーブ)で見るものとかなり違っています。SpeedCurve(スピードカーブ)は、その基盤にオープンソースのWebPageTestを利用しており、、コードの変更がパフォーマンスに与える影響を確認できる、一貫した環境を提供するように設計されています。が、必ずしもすべてのユーザーが経験を表しているとは限りません。
SpeedCurveは、いつもWebを読み込んでいます。
- まったく空のキャッシュから
- ハードウェアから
- Amazon EC2 の中から
- 平均の接続スピードのスロットルから
ローカルコンピュータでのテストとは大きく違う環境のため、大きく異なった数字結果が表れることもあります。
Lighthouseについて
SpeedCurveは、Lighthouse(ライトハウス)テストも実行します。 Lighthouseは、SpeedCurveのメインのテストとは別に実行され、SpeedCurveブラウザのプロファイルに関係なく「3G Fast」ネットワークスロットルを使用します。 このため、Lighthouseでは、SpeedCurveとは少し異なる数字が報告されます。
テストハードウェアは大きな差別化要因です。
SpeedCurve(スピードカーブ)は、EC2インスタンス使っています。 WebPageTestは素晴らしいツールですが、そのハードウェアはボランティアによって運営されています。WebPagetestの作成者であるPat Meenanは、ハードウェアを制御することはできず、そのハードウェアに何が起こったのかなどを追跡したりしません。
SpeedCurveでは、すべての場所で結果を比較できることが重要と考えており、すべての場所で同じEC2インスタンスを使用しています。 Apple製品同士を比較するには、そのCPU(帯域幅、場所など)を一致させることが重要です。
もし、SpeedCurveと WebPageTestの間で、より近い結果を得ることが重要なら、WPTで利用可能なEC2の場所を試してみるのがいいかもしれません。それでも、インスタンスの種類が不明なので比較が難しいかもしれません。 より大きなインスタンスタイプを使用しテストしましたが、CPUに応じて25〜50%のスピードアップが見られます)。
バグという可能性
大きな相違がある場合は、テストにバグでている可能性があります。すでに述べたように、SpeedCurve SyntheticはWebPageTestの基盤に構築されています。WebPageTestは正確な測定値をキャプチャするために最善で動きますが、ご存じのように、ブラウザは非常に動的な環境で、ブラウザ変更は測定の取り込み方法に大きな影響を与えます。
バグではなく、多少異なるテスト環境の問題がある場合は、次の点を覚えておいてください。
追跡する上で最も重要なのは、テストツールと設定の一貫性の変更です
SpeedCurveまたはWebPagetestでのテスト結果に変化をみるなら、それは意味のあるものです。
各ツールで得られた結果に違いがでても、特に重要ではありません(前述のように、ハードウェア/ロケーションのテストなどの原因によって発生する可能性が高いからです)。
私たちは、絶対数に焦点を当てるのではなく、コードを改善するときにSpeedCurveでどのくらいの改善があるかを見ることを奨励しています。
例として:開始レンダリングはサイトXより38%高速です。私たちのスピードインデックスは、最後の表示から15%ほど低下しました。
RUM(Real User Monitoring)などの他のツールも参照する必要があります。何千ものデータポイントに基づく幅広いパフォーマンス概要を把握することが大切です。その時でも、すべての人のために1つだけの数字を得ることはできません。
ユーザーは、さまざまなデバイス、ネットワーク、地域にわたって多様な体験を表現することが重要です。ここに役立つかもしれないいくつかのリンクがあります…
・SpeedCurveは、Web パフォーマンスツールキットにどのように適合しているか?
・シンセティック(合成)モニタリング VS リアルタイムユーザーモニタリング