LoginSignup
10
2

More than 1 year has passed since last update.

Lighthouseのパフォーマンスのスコアは、計測するデバイスによって変わる!

Last updated at Posted at 2023-01-17

Web Vitalsのスコアを計測するためにLighthouseを用いることがあると思うのですが、このスコアは実行するデバイスのCPUスペックによって変化するので注意が必要です。

一般的に、Lighthouseはリアルユーザー環境での計測と違い、計測ごとのスコアのブレが少ないという特徴があります。
ただし、計測ごとにスコアのブレが少ないものの、そもそものスコアの値は環境により異なります。
これは、Lighthouseで計測するときのスロットリング方法によるものです。

(リアルユーザー環境とラボ環境での計測の違いについてはこちらをご覧ください)

Lighthouseで計測するときのスロットリング方法

Lighthouseでは、計測の際にスロットリングを行います。
例えば、Mobile Deviceを想定してLighthouseを実行する時に、NetworkスロットリングとCPUスロットリングが行なわれます。

image.png

実際の設定値はこちらで確認できます。

このうち、CPUスロットリングはホストのデバイスのスペックを基準に相対的に遅くすることで実現しています。

実際のユーザーの使うデバイスと、シミュレートする環境での差分に注意する

そのため、CPUスロットリングでシミュレートしているデバイスと、実際のユーザーの使うデバイスのスペックに乖離がないかを確認しないと、スコアと実態の乖離が生まれる恐れがあります。

Lighthouse BenchmarkIndexという指標で表されているのですが、これを確認しましょう。

image.png

ちなみに、手元のM1 Macbook Airで計測してみるとこのような値になりました。
BenchmarkIndexはLighthouse実行後にフッターに表示されています。

image.png

このBenchmarkIndexを基準にMobile環境では4倍遅くして計測しています。
しかし、以下の表にあるように、元々の計測環境がHigh-End Desktopなのか、Low-End Desktopなのかによって、4倍遅くしたときにMid-Tier Mobileスペックになるのか、Low-End Mobileスペックになるのかに違いが生まれてしまいます。

image.png

また、このMid-Tier Mobile、Low-End Mobileとしている基準も、2017年の統計結果となっている点にも注意が必要です。

image.png

つまり、年々デバイスのスペックが上がっている点も考慮に入れたほうがよさそうです。
例えばグラフを見ると、比較されているiPhoneは「iPhone 8」のようです。

image.png

実行するCPUのスペックが異なると、JavaScriptの実行速度が変わることからスコアに大きな影響が予想されます。

スコアがどのスペックで計測されたものなのかを知り、リアルユーザーのデータと突き合わせて差分を把握しておきましょう。

参考

10
2
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
10
2