ปัจจัยหลายประการที่มีผลต่อประสิทธิภาพของหน้าเว็บ คะแนนประสิทธิภาพของ Lighthouse มีแนวโน้มที่จะเปลี่ยนแปลงเนื่องจากความแปรปรวนตามปกติของเทคโนโลยีเว็บและเครือข่ายแม้ว่าจะไม่มีการเปลี่ยนแปลงในหน้าเว็บก็ตาม
แหล่งที่มาของความแปรปรวน
ความหลากหลายในการวัดประสิทธิภาพเกิดขึ้นผ่านช่องทางต่างๆ จำนวนมากที่มีระดับผลกระทบต่างกัน ด้านล่างนี้เป็นตารางที่ประกอบด้วยแหล่งที่มาทั่วไปหลายๆ แหล่งของความแปรปรวนของเมตริก ผลกระทบทั่วไปที่มีต่อผลลัพธ์ และระดับความเป็นไปได้ที่แหล่งที่มาเหล่านี้มีแนวโน้มที่จะเกิดขึ้นในสภาพแวดล้อมที่แตกต่างกัน
แหล่งที่มา | มีอิทธิพล | ผู้ใช้ทั่วไป | PageSpeed Insights | ห้องทดลองที่มีการควบคุม |
---|---|---|---|---|
การไม่กำหนดหน้า | สูง | น่าจะ | น่าจะ | น่าจะ |
ความผันแปรของเครือข่ายในพื้นที่ | สูง | น่าจะ | ไม่น่าจะนำไปใช้ | ไม่น่าจะนำไปใช้ |
ความผันแปรของเครือข่ายระดับ 1 | สื่อ | เป็นไปได้ | เป็นไปได้ | เป็นไปได้ |
ความผันแปรของเว็บเซิร์ฟเวอร์ | ต่ำ | น่าจะ | น่าจะ | น่าจะ |
ความผันแปรของฮาร์ดแวร์ไคลเอ็นต์ | สูง | น่าจะ | ไม่น่าจะนำไปใช้ | ไม่น่าจะนำไปใช้ |
การช่วงชิงทรัพยากรของไคลเอ็นต์ | สูง | น่าจะ | เป็นไปได้ | ไม่น่าจะนำไปใช้ |
การไม่กำหนดเบราว์เซอร์ | สื่อ | บางส่วน | บางส่วน | บางส่วน |
ด้านล่างนี้เป็นคำอธิบายโดยละเอียดเกี่ยวกับแหล่งที่มาของความแปรปรวนและผลกระทบที่มีต่อชุดรันไทม์ของ Lighthouse ร่วมกับสภาพแวดล้อมที่เป็นไปได้มากที่สุด แม้ว่าจะใช้วิธีการควบคุมและจําลองการควบคุมได้ในสภาพแวดล้อมทั้ง 3 แบบนี้ได้ แต่ผู้ใช้ปลายทางทั่วไปจะใช้การควบคุมจําลอง
การไม่กำหนดหน้า
หน้าเว็บอาจมีตรรกะที่ไม่กำหนดตายตัวที่เปลี่ยนแปลงวิธีที่ผู้ใช้ได้รับประสบการณ์การใช้งานหน้าเว็บ เช่น การทดสอบ A/B ที่เปลี่ยนเลย์เอาต์และเนื้อหาที่โหลด หรือประสบการณ์การใช้งานโฆษณาที่ต่างออกไปตามความคืบหน้าของแคมเปญ นี่เป็นแหล่งที่มาของความแปรปรวน โดยเจตนาและไม่สามารถแก้ไขได้ หากหน้าเว็บเปลี่ยนแปลงในลักษณะที่ส่งผลเสียต่อประสิทธิภาพ Lighthouse ก็ควรระบุเคสนี้ได้ การบรรเทาปัญหาเพียงอย่างเดียวในที่นี้คือส่วนของเจ้าของเว็บไซต์ในการตรวจสอบว่าหน้าเว็บเวอร์ชันเดียวกันกำลังได้รับการทดสอบระหว่างการเรียกใช้ที่ต่างกัน
ความผันแปรของเครือข่ายในพื้นที่
เครือข่ายท้องถิ่นมีความแปรปรวนตามธรรมชาติจากการสูญเสียแพ็กเก็ต การจัดลำดับความสำคัญของการรับส่งข้อมูลที่เปลี่ยนแปลงได้ และความคับคั่งของเครือข่ายระยะสุดท้าย โดยผู้ใช้ที่มีเราเตอร์ราคาถูกและอุปกรณ์จำนวนมากที่ใช้แบนด์วิดท์ร่วมกันแบบจำกัดมักมีความเสี่ยงมากที่สุด การควบคุมการนำไปใช้จะลดผลกระทบเหล่านี้บางส่วนโดยใช้เวลาในการตอบสนองคำขอขั้นต่ำและอัตราการส่งข้อมูลสูงสุดที่จะมาสก์การดำเนินการซ้ำที่สำคัญ การควบคุมการจำลองจะบรรเทาผลกระทบเหล่านี้โดยการเล่นกิจกรรมในเครือข่ายซ้ำๆ ด้วยตัวเอง
ความผันแปรของเครือข่ายระดับ 1
โดยทั่วไปแล้ว การเชื่อมต่อเครือข่ายจะมีความเสถียรมากและมีผลกระทบน้อยที่สุด แต่คำขอข้ามทางภูมิศาสตร์ กล่าวคือ การวัดประสิทธิภาพของเว็บไซต์ในจีนจากสหรัฐอเมริกา อาจเริ่มได้รับเวลาในการตอบสนองในระดับสูงจากฮอพเครือข่ายระดับ 1 ใช้การควบคุมเพื่อมาสก์ผลกระทบเหล่านี้บางส่วนด้วยการควบคุมเครือข่าย การควบคุมการจำลองจะบรรเทาผลกระทบเหล่านี้โดยการเล่นกิจกรรมในเครือข่ายซ้ำๆ ด้วยตัวเอง
ความผันแปรของเว็บเซิร์ฟเวอร์
เว็บเซิร์ฟเวอร์มีการโหลดตัวแปร และไม่ตอบสนองบ่อยเท่าเดิม เว็บไซต์ที่มีการเข้าชมต่ำซึ่งมีโครงสร้างพื้นฐานของโฮสติ้งที่ใช้ร่วมกันมักจะมีความเสี่ยงมากกว่า การควบคุมแบบใช้จะมาสก์ผลกระทบเหล่านี้บางส่วนโดยใช้เวลาในการตอบสนองคำขอขั้นต่ำในการควบคุมเครือข่าย การควบคุมจําลองมีแนวโน้มที่จะได้รับผลกระทบจากผลกระทบนี้ แต่ผลกระทบโดยรวมมักจะต่ำเมื่อเทียบกับความผันแปรของเครือข่ายอื่นๆ
ความผันแปรของฮาร์ดแวร์ไคลเอ็นต์
ฮาร์ดแวร์ที่หน้าเว็บโหลดอยู่สามารถส่งผลต่อประสิทธิภาพการทำงานได้อย่างมาก การควบคุมเชิงประยุกต์ไม่สามารถช่วยลดปัญหานี้ได้ การจำลอง การควบคุมจะบรรเทาปัญหานี้ได้บางส่วนโดยการจำกัดเวลาการดำเนินการทางทฤษฎีของงาน CPU ในระหว่างการจำลอง
การโต้แย้งทรัพยากรของไคลเอ็นต์
แอปพลิเคชันอื่นๆ ที่ทำงานในเครื่องเดียวกันขณะที่ Lighthouse ทำงานอยู่อาจทำให้เกิดการแย่งชิงทรัพยากร CPU, หน่วยความจำ และเครือข่ายได้ มัลแวร์ ส่วนขยายเบราว์เซอร์ และซอฟต์แวร์ป้องกันไวรัสมีผลกระทบอย่างมากต่อประสิทธิภาพของเว็บอย่างมาก สภาพแวดล้อมการทำงานของเซิร์ฟเวอร์แบบหลายกลุ่มผู้ใช้ (เช่น Travis, AWS ฯลฯ) อาจได้รับผลกระทบจากปัญหาเหล่านี้เช่นกัน โดยปกติแล้ว การเรียกใช้ Lighthouse หลายอินสแตนซ์พร้อมกันจะทำให้ผลลัพธ์บิดเบือนจากปัญหานี้ การควบคุมที่นำไปใช้มีความเสี่ยงต่อปัญหานี้ การจำลองการควบคุมจะบรรเทาปัญหานี้ได้บางส่วนโดยการเล่นกิจกรรมเครือข่ายอีกครั้งด้วยตนเองและกำหนดการดำเนินการ CPU สูงสุด
การไม่กำหนดเบราว์เซอร์
การทำงานที่มีผลต่อการโหลดหน้าเว็บมักจะแปรปรวนมาอยู่แล้ว ซึ่งหลีกเลี่ยงไม่ได้สำหรับการควบคุมที่ใช้ เนื่องจากเมื่อสิ้นสุดวันที่มีเพียงการรายงานสิ่งที่เบราว์เซอร์สังเกตได้ การควบคุมการจำลองจะช่วยลดผลกระทบนี้ได้บางส่วนโดยการจำลองการดำเนินการด้วยตนเอง โดยนำเฉพาะเวลาดำเนินการของงานซ้ำจากเบราว์เซอร์ในค่าประมาณเท่านั้น
ผลกระทบของกลยุทธ์การควบคุม
ด้านล่างนี้เป็นตารางที่ประกอบด้วยแหล่งที่มาโดยทั่วไปของความแปรปรวนของเมตริกต่างๆ ผลกระทบทั่วไปที่มีต่อผลลัพธ์ และขอบเขตที่กลยุทธ์การควบคุมของ Lighthouse ต่างๆ สามารถลดผลกระทบลงได้ ดูข้อมูลเพิ่มเติมเกี่ยวกับกลยุทธ์การควบคุมแบบต่างๆ ในเอกสารการควบคุม
แหล่งที่มา | มีอิทธิพล | การควบคุมจำลอง | การควบคุมที่ใช้ | ไม่มีการควบคุม |
---|---|---|---|---|
การไม่กำหนดหน้า | สูง | ไม่มีการละเว้น | ไม่มีการละเว้น | ไม่มีการละเว้น |
ความผันแปรของเครือข่ายในพื้นที่ | สูง | ปลดเปลื้อง | ถูกคัดออกบางส่วน | ไม่มีการละเว้น |
ความผันแปรของเครือข่ายระดับ 1 | สื่อ | ปลดเปลื้อง | ถูกคัดออกบางส่วน | ไม่มีการละเว้น |
ความผันแปรของเว็บเซิร์ฟเวอร์ | ต่ำ | ไม่มีการละเว้น | ถูกคัดออกบางส่วน | ไม่มีการละเว้น |
ความผันแปรของฮาร์ดแวร์ไคลเอ็นต์ | สูง | ถูกคัดออกบางส่วน | ไม่มีการละเว้น | ไม่มีการละเว้น |
การช่วงชิงทรัพยากรของไคลเอ็นต์ | สูง | ถูกคัดออกบางส่วน | ไม่มีการละเว้น | ไม่มีการละเว้น |
การไม่กำหนดเบราว์เซอร์ | สื่อ | ถูกคัดออกบางส่วน | ไม่มีการละเว้น | ไม่มีการละเว้น |
กลยุทธ์ในการรับมือกับความแปรปรวน
แยกปัจจัยภายนอก
- แยกหน้าเว็บของคุณจากอิทธิพลของบุคคลที่สามให้มากที่สุด การถูกโทษเมื่อความล้มเหลวตัวแปรของคนอื่นเป็นเรื่องที่สนุกมาก
- แยกความไม่กำหนดของโค้ดของคุณเองระหว่างการทดสอบ หากคุณได้รับภาพเคลื่อนไหว แสดงขึ้นแบบสุ่ม แสดงว่าตัวเลขประสิทธิภาพอาจสุ่มได้ ด้วย
- แยกเซิร์ฟเวอร์ทดสอบออกจากความผันผวนของเครือข่ายให้มากที่สุด ใช้ localhost หรือเครื่องที่อยู่ในเครือข่ายเดียวกันเมื่อใดก็ตามที่มีข้อกังวลเกี่ยวกับความเสถียร
- แยกสภาพแวดล้อมของไคลเอ็นต์จากอิทธิพลภายนอก เช่น ซอฟต์แวร์ป้องกันไวรัสและส่วนขยายเบราว์เซอร์ ใช้อุปกรณ์สำหรับการทดสอบโดยเฉพาะเมื่อเป็นไปได้
หากเครื่องของคุณมีทรัพยากรจำกัดมากหรือการสร้างสภาพแวดล้อมที่สะอาดเป็นเรื่องยาก ให้ใช้สภาพแวดล้อมของห้องทดลองที่โฮสต์ เช่น PageSpeed Insights หรือ WebPageTest เพื่อทำการทดสอบให้คุณ ในกรณีที่มีการผสานรวมอย่างต่อเนื่อง ให้ใช้เซิร์ฟเวอร์เฉพาะหากเป็นไปได้ สภาพแวดล้อม CI แบบฟรีและอินสแตนซ์ที่ "เร่งประสิทธิภาพ" มักจะค่อนข้างมีความผันผวน
เรียกใช้ Lighthouse หลายครั้ง
เมื่อสร้างเกณฑ์สำหรับความล้มเหลว ไม่ว่าจะเป็นด้านจิตใจหรือแบบเป็นโปรแกรม ให้ใช้ค่ารวม เช่น ค่ามัธยฐาน เปอร์เซ็นไทล์ที่ 90 หรือค่าต่ำสุด แทนการทดสอบเดี่ยว
คะแนนมัธยฐานของคะแนน Lighthouse ซึ่งก็คือ 5 รันนั้นคงที่มากกว่า 1 รัน 1 ครั้ง และเครื่องมืออย่าง pwmetric จะเรียกใช้ Lighthouse ให้คุณโดยอัตโนมัติได้ การใช้ค่าขั้นต่ำยังช่วยได้อย่างมากมากกว่าการไม่ต้องทดสอบเลย อีกทั้งยังใช้ได้ง่ายมาก เพียงแค่เรียกใช้ Lighthouse ไม่เกิน 5 ครั้งจนกว่าจะผ่านการทดสอบ