Screen Test Pro

ทดสอบประสิทธิภาพ

benchmark บนเบราว์เซอร์ที่มีคะแนน เพื่อหาโหลดอนุภาคสูงสุดที่อุปกรณ์ของคุณยังรักษาอัตราเฟรมให้คงที่ได้ ดูตื่นตาเวลารัน แต่น่าเบื่อในวิธีวัด ซึ่งนั่นแหละคือประเด็น

เริ่มทดสอบ

สถิติฮาร์ดแวร์

รันอะไรบ้าง

การรันแบบ Standard ประกอบด้วยฉาก Signature 5 ฉากบน WebGL2 โดยแต่ละฉากจะกดโหลดคนละส่วนของ pipeline และมีฉาก Canvas 2D ที่ตั้งใจทำให้เรียบง่ายอีก 1 ฉากเพื่อเป็นตัวควบคุมแบบ CPU-bound:

ฉาก โหลดหลักที่เน้น หน้าตาโดยรวม
Nebula Drift การอัปเดตอนุภาคบน GPU และ fill rate เนบิวลาที่ประกอบด้วยอนุภาคจำนวนมหาศาล ลอยช้า ๆ ในสนามการไหลแบบ curl-noise
Neon City draw call และ instanced geometry การบินผ่านเมืองที่เต็มไปด้วยอาคารเรืองแสงจำนวนมาก
Liquid Metal fragment shader / raymarching ของเหลวทรงกลมโลหะเงาสะท้อนที่เรนเดอร์ด้วย raymarching
Meteorfall ฟิสิกส์บน CPU และการอัปโหลดข้อมูลทุกเฟรม สายธารเศษชิ้นส่วนแบบ Verlet ชนกับเรขาคณิตที่เคลื่อนที่ตลอดเวลา
Supernova โหลดผสมขั้นสุดท้าย แกนยุบตัว คลื่นกระแทก และการระเบิดของอนุภาค 500,000 ตัว
Canvas 2D Basic Circles การระบายสีใน Canvas 2D และฟิสิกส์อย่างง่าย เส้นฐานที่ซื่อตรง: วงกลมสีเด้งไปมาอย่างลื่นไหล

เอฟเฟกต์ต้นฉบับ 8 แบบจาก Screen Test Pro v1 ยังอยู่ต่อใน โหมด Classic ปุ่มด้านบนจะรันทั้งหมดด้วยเอนจินการวัดชุดเดียวกัน แต่ให้คะแนนในสเกลของตัวเองและจะไม่ถูกส่งไปที่ใดเลย เป็นความคิดถึงล้วน ๆ ที่วัดอย่างตรงไปตรงมา และทุกฉากจากทั้งสองชุดก็สามารถรันแบบไม่คิดคะแนนได้ในแกลเลอรี

คะแนนทำงานอย่างไร

แต่ละฉากจะเพิ่มและลดโหลดอนุภาคเพื่อหาโหลดสูงสุดที่อุปกรณ์ของคุณยังรักษาได้ภายในงบเวลาเฟรมคงที่ 16.67 ms โดยตัดสินจากเปอร์เซ็นไทล์ที่ 95 ของ frame time ที่วัดได้ในหน้าต่างเวลาประมาณ 1.6 วินาที และต้องผ่านหรือไม่ผ่านต่อเนื่องหลายหน้าต่างก่อน จึงจะยอมรับหรือปฏิเสธระดับโหลดนั้นได้ จากนั้น “โหลดเสถียรสูงสุด” นี้จะถูกทำ normalization เทียบกับค่าอ้างอิงรายฉาก แล้วรวมเป็นค่าเฉลี่ยเรขาคณิตแบบถ่วงน้ำหนัก เพื่อสร้างคะแนนรวมและระดับชั้น (Entry / Balanced / Fast / Extreme)

รายละเอียดทั้งหมดมีอยู่ในวิธีคำนวณแบบเต็ม แต่มีอยู่ไม่กี่ข้อที่ควรรู้เป็นพิเศษ:

  • หน้าจออัตรารีเฟรชสูงไม่เสียเปรียบ งบเวลายังคงล็อกไว้ที่ 16.67 ms ไม่ว่าหน้าจอของคุณจะทำงานที่ 60 หรือ 165 Hz
  • การสลับไปพื้นหลังทำให้หน้าต่างวัดปัจจุบันเป็นโมฆะเท่านั้น ไม่ทำลายการรันทั้งหมด หากสลับออกไป การวัดช่วงนั้นจะถูกทิ้งและลองใหม่ benchmark จะหยุดชั่วคราวแทนที่จะบันทึกข้อมูลขยะ
  • ความเสื่อมจากอุณหภูมิจะถูกทำเครื่องหมายไว้ แต่ละฉากจะกลับไปตรวจโหลดพื้นฐานอีกครั้งตอนท้าย หากอุปกรณ์ช้าลงเกิน 15% ระหว่างฉาก ผลลัพธ์จะถูกระบุว่าเสื่อมลง แทนที่จะถูกเฉลี่ยกลืนหายไปเงียบ ๆ
  • คะแนนมีเวอร์ชันกำกับ นี่คือ benchmark {BENCHMARK_VERSION} หากมีการเปลี่ยนโหลดงานของฉากใด เวอร์ชันจะถูกเพิ่ม และคะแนนจากคนละเวอร์ชันจะไม่ถูกนำมาเทียบกัน
  • มี hard timeout ครบทุกจุด หนึ่งฉากใช้เวลาได้ไม่เกิน 30 วินาที การรันหนึ่งครั้งเกิน 150 วินาทีไม่ได้ และทุกสถานะมีทางออก benchmark ยกเลิกได้ แต่จะไม่ค้าง

สิ่งที่มันวัดได้ และวัดไม่ได้

นี่คือคะแนนของงานโหลดบนเบราว์เซอร์ มันสะท้อนการทำงานร่วมกันของ GPU, CPU, เบราว์เซอร์, ระบบปฏิบัติการ, อุณหภูมิ และการตั้งค่าต่าง ๆ ซึ่งทำให้มันเป็นการทดสอบที่ยุติธรรมสำหรับสิ่งที่อุปกรณ์ของคุณส่งมอบได้จริงในเบราว์เซอร์ แต่เป็นตัวแทนที่ไม่ดีนักของ benchmark แบบเนทีฟเมื่อคุณต้องการเทียบชิปกันตรง ๆ เราอธิบายความต่างนี้ไว้แบบไม่อ้อมค้อมในบทความ สิ่งที่ benchmark บนเบราว์เซอร์วัดได้และวัดไม่ได้ สรุปสั้น ๆ มีสองข้อ: ปิดแท็บอื่นก่อนรัน และมองความต่างของคะแนนเล็กน้อยระดับไม่กี่เปอร์เซ็นต์ว่าเป็น noise

ตัวอย่างข้อมูลแบบไม่ระบุตัวตน

เมื่อรันแบบ Standard จบ ระบบจะส่งข้อมูลแบบไม่ระบุตัวตน 1 แถว ได้แก่ คะแนน ตระกูลฮาร์ดแวร์แบบคร่าว ๆ และตัวเลขของหน้าจอ เพื่อใช้ในหน้าสถิติ benchmark ฮาร์ดแวร์สาธารณะ การแชร์ถูกเปิดไว้เป็นค่าเริ่มต้น โดยการ์ดเริ่มต้นจะแสดงค่าที่อุปกรณ์ของคุณจะส่งจริงทั้งหมด และหากเอาเครื่องหมายถูกออกตรงนั้น benchmark ก็ยังรันได้ครบเหมือนเดิม เพียงแต่จะไม่ส่งข้อมูลใด ๆ และระบบจะจำตัวเลือกนี้ไว้ รายละเอียดเพิ่มเติมอยู่ในนโยบายความเป็นส่วนตัว