Variabilitas Lighthouse

Banyak faktor yang memengaruhi performa halaman web. Skor performa Lighthouse cenderung berubah karena variabilitas yang melekat dalam teknologi web dan jaringan, meskipun belum ada perubahan pada halaman.

Sumber Variabilitas

Variabilitas dalam pengukuran performa diperkenalkan melalui sejumlah saluran dengan tingkat dampak yang berbeda-beda. Di bawah ini adalah tabel yang berisi beberapa sumber umum variabilitas metrik, dampak yang biasanya timbul terhadap hasil, dan kemungkinan terjadinya perubahan di lingkungan yang berbeda.

Sumber Dampak Pengguna Akhir Umum PageSpeed Insights Lab Terkontrol
Nondeterminisme halaman Tinggi KEMUNGKINAN KEMUNGKINAN KEMUNGKINAN
Variabilitas jaringan lokal Tinggi KEMUNGKINAN KEMUNGKINAN TIDAK KEMUNGKINAN TIDAK
Variabilitas jaringan tingkat-1 Sedang KEMUNGKINAN KEMUNGKINAN KEMUNGKINAN
Variabilitas server web Rendah KEMUNGKINAN KEMUNGKINAN KEMUNGKINAN
Variabilitas hardware klien Tinggi KEMUNGKINAN KEMUNGKINAN TIDAK KEMUNGKINAN TIDAK
Pertentangan resource klien Tinggi KEMUNGKINAN KEMUNGKINAN KEMUNGKINAN TIDAK
Nondeterminisme browser Sedang TERTENTU TERTENTU TERTENTU

Di bawah ini adalah deskripsi yang lebih mendetail tentang sumber varian dan dampaknya terhadap kombinasi yang paling mungkin dari runtime + lingkungan Lighthouse. Meskipun pendekatan throttling dan throttling yang disimulasikan dapat digunakan di salah satu dari tiga lingkungan ini, pengguna akhir pada umumnya menggunakan throttling yang disimulasikan.

Nondeterminisme Halaman

Halaman dapat berisi logika yang tidak deterministik dan mengubah cara pengguna melihat halaman, yaitu pengujian A/B yang mengubah tata letak dan aset yang dimuat atau pengalaman iklan yang berbeda berdasarkan progres kampanye. Ini adalah sumber varians yang disengaja dan tidak dapat dihapus. Jika halaman berubah sehingga menurunkan performa, Lighthouse harus dapat mengidentifikasi kasus ini. Satu-satunya mitigasi di sini adalah oleh pemilik situs untuk memastikan bahwa versi halaman yang sama persis sedang diuji di antara berbagai operasi.

Variabilitas Jaringan Lokal

Jaringan lokal memiliki variabilitas yang melekat pada paket yang hilang, prioritas traffic variabel, dan kemacetan jaringan kilometer terakhir. Pengguna dengan {i>router<i} murah dan banyak perangkat yang berbagi {i>bandwidth<i} terbatas biasanya paling rentan terhadap hal ini. Throttling yang diterapkan mengurangi sebagian efek ini dengan menerapkan latensi permintaan minimum dan throughput maksimum yang menyamarkan percobaan ulang yang mendasarinya. Throttling Simulasi mengurangi efek ini dengan memutar ulang aktivitas jaringan sendiri.

Variabilitas Jaringan Tingkat-1

Interkoneksi jaringan umumnya sangat stabil dan memiliki dampak yang minimal, tetapi permintaan lintas geografis, yaitu pengukuran performa situs China dari AS, dapat mulai mengalami tingkat latensi yang tinggi yang berasal dari hop jaringan tingkat-1. Throttling yang diterapkan akan menyamarkan sebagian efek ini dengan throttling jaringan. Throttling Simulasi mengurangi efek ini dengan memutar ulang aktivitas jaringan sendiri.

Variabilitas Server Web

Server web memiliki beban variabel dan tidak selalu merespons dengan penundaan yang sama. Situs dengan traffic lebih rendah dengan infrastruktur hosting bersama biasanya lebih rentan terhadap hal ini. Throttling yang Diterapkan menyamarkan sebagian efek ini dengan menerapkan latensi permintaan minimum dalam throttling jaringannya. Throttling Simulasi rentan terhadap efek ini, tetapi dampak keseluruhan biasanya rendah jika dibandingkan dengan variabilitas jaringan lainnya.

Variabilitas Hardware Klien

Hardware tempat halaman web dimuat dapat sangat memengaruhi performa. Throttling yang diterapkan tidak dapat berbuat banyak untuk memitigasi masalah ini. Throttling Simulasi mengurangi sebagian masalah ini dengan membatasi waktu eksekusi teoretis tugas CPU selama simulasi.

Pertentangan Resource Klien

Aplikasi lain yang berjalan di mesin yang sama saat Lighthouse berjalan dapat menyebabkan pertentangan untuk CPU, memori, dan resource jaringan. Malware, ekstensi browser, dan software anti-virus memiliki dampak yang sangat kuat terhadap performa web. Lingkungan server multi-tenant (seperti Travis, AWS, dll.) juga dapat mengalami masalah ini. Menjalankan beberapa instance Lighthouse sekaligus biasanya juga akan mendistorsi hasil karena masalah ini. Throttling yang diterapkan rentan terhadap masalah ini. Throttling Simulasi mengurangi sebagian masalah ini dengan memutar ulang aktivitas jaringan sendiri dan membatasi eksekusi CPU.

Nondeterminisme Browser

Browser memiliki variabilitas yang melekat dalam eksekusi tugas yang memengaruhi cara pemuatan halaman web. Hal ini tidak dapat dihindari untuk throttling yang diterapkan karena di penghujung hari mereka hanya melaporkan apa pun yang diamati oleh browser. Throttling Simulasi dapat mengurangi sebagian efek ini dengan menyimulasikan eksekusi sendiri, dengan hanya menggunakan kembali waktu eksekusi tugas dari browser dalam perkiraannya.

Pengaruh Strategi Throttling

Di bawah ini adalah tabel yang berisi beberapa sumber umum variabilitas metrik, dampak umum yang dihasilkannya terhadap hasil, dan sejauh mana strategi throttling Lighthouse yang berbeda dapat mengurangi efeknya. Pelajari lebih lanjut berbagai strategi throttling di dokumentasi throttling kami.

Sumber Dampak Simulasi Throttling Throttling yang Diterapkan Tanpa Throttling
Nondeterminisme halaman Tinggi TIDAK ADA MITIGASI TIDAK ADA MITIGASI TIDAK ADA MITIGASI
Variabilitas jaringan lokal Tinggi MITIGASI MITIGASI KHUSUS TIDAK ADA MITIGASI
Variabilitas jaringan tingkat-1 Sedang MITIGASI MITIGASI KHUSUS TIDAK ADA MITIGASI
Variabilitas server web Rendah TIDAK ADA MITIGASI MITIGASI KHUSUS TIDAK ADA MITIGASI
Variabilitas hardware klien Tinggi MITIGASI KHUSUS TIDAK ADA MITIGASI TIDAK ADA MITIGASI
Pertentangan resource klien Tinggi MITIGASI KHUSUS TIDAK ADA MITIGASI TIDAK ADA MITIGASI
Nondeterminisme browser Sedang MITIGASI KHUSUS TIDAK ADA MITIGASI TIDAK ADA MITIGASI

Strategi untuk Menangani Varian

Pisahkan Faktor Eksternal

  • Sebisa mungkin pisahkan halaman Anda dari pengaruh pihak ketiga. Tidak pernah menyenangkan disalahkan atas kegagalan variabel orang lain.
  • Mengisolasi nondeterminisme kode Anda sendiri selama pengujian. Jika Anda memiliki animasi yang muncul secara acak, angka performa Anda mungkin juga acak.
  • Pisahkan server pengujian Anda dari sebanyak mungkin ketidakstabilan jaringan. Gunakan localhost atau mesin di jaringan yang sama persis setiap kali masalah stabilitas.
  • Pisahkan lingkungan klien Anda dari pengaruh eksternal seperti perangkat lunak anti-virus dan ekstensi browser. Gunakan perangkat khusus untuk pengujian jika memungkinkan.

Jika resource di komputer Anda sangat terbatas, atau jika membuat lingkungan yang bersih menjadi sulit, gunakan lingkungan lab yang dihosting seperti PageSpeed Insights atau WebPageTest untuk menjalankan pengujian Anda. Dalam situasi continuous integration, gunakan server khusus jika memungkinkan. Lingkungan CI gratis dan instance yang "burstable" biasanya cukup tidak stabil.

Jalankan Lighthouse Beberapa Kali

Saat membuat batas untuk kegagalan, baik mental maupun terprogram, gunakan nilai agregat seperti median, persentil ke-90, atau bahkan min, bukan pengujian tunggal.

Median skor Lighthouse 5 run dua kali lebih stabil dari 1 run, dan alat seperti pwmetrics dapat menjalankan Lighthouse untuk Anda secara otomatis. Menggunakan nilai minimum juga merupakan peningkatan besar dibandingkan tidak menguji sama sekali dan sangat mudah diimplementasikan. Cukup jalankan Lighthouse hingga 5 kali sampai lulus.

Masukan

Apakah halaman ini membantu?
Ya
Apa hal terbaik dari halaman ini?
Ini membantu saya mencapai sasaran
Terima kasih atas masukannya. Jika Anda memiliki ide khusus tentang cara meningkatkan kualitas halaman ini, laporkan masalah.
Situs memiliki informasi yang saya butuhkan
Terima kasih atas masukannya. Jika Anda memiliki ide khusus tentang cara meningkatkan kualitas halaman ini, laporkan masalah.
Halaman berisi informasi yang akurat
Terima kasih atas masukannya. Jika Anda memiliki ide khusus tentang cara meningkatkan kualitas halaman ini, laporkan masalah.
Konten mudah dibaca
Terima kasih atas masukannya. Jika Anda memiliki ide khusus tentang cara meningkatkan kualitas halaman ini, laporkan masalah.
Lainnya
Terima kasih atas masukannya. Jika Anda memiliki ide khusus tentang cara meningkatkan kualitas halaman ini, laporkan masalah.
Tidak
Hal terburuk apa yang ada di halaman ini?
Hal ini tidak membantu saya menyelesaikan sasaran
Terima kasih atas masukannya. Jika Anda memiliki ide khusus tentang cara meningkatkan kualitas halaman ini, laporkan masalah.
Informasi yang saya butuhkan tidak ada
Terima kasih atas masukannya. Jika Anda memiliki ide khusus tentang cara meningkatkan kualitas halaman ini, laporkan masalah.
Ada informasi yang tidak akurat
Terima kasih atas masukannya. Jika Anda memiliki ide khusus tentang cara meningkatkan kualitas halaman ini, laporkan masalah.
Sulit dibaca
Terima kasih atas masukannya. Jika Anda memiliki ide khusus tentang cara meningkatkan kualitas halaman ini, laporkan masalah.
Lainnya
Terima kasih atas masukannya. Jika Anda memiliki ide khusus tentang cara meningkatkan kualitas halaman ini, laporkan masalah.