ความหน่วงของคีย์บอร์ด: มาจากไหน และทดสอบกันอย่างไร
ความหน่วงของคีย์บอร์ด (keyboard latency) คือเวลาตั้งแต่นิ้วเริ่มกดปุ่มจนถึงตอนที่คีย์บอร์ดส่งการกดนั้นไปยังคอมพิวเตอร์ ความหน่วงนี้สะสมจากสี่จุด ได้แก่ ระยะกดของปุ่ม การสแกนปุ่มของคีย์บอร์ด ดีบาวซ์ (debounce) และ USB polling ไม่มีเว็บไซต์ไหนวัดค่านี้ได้ เพราะเบราว์เซอร์จะรู้ว่ามีการกดก็ต่อเมื่อคีย์บอร์ดส่งออกไปแล้ว ผู้ทดสอบใช้โซลินอยด์กดปุ่ม และใช้ USB analyzer บันทึกว่าการกดออกจากคีย์บอร์ดเมื่อไร ถ้าอยากลดความหน่วง ให้ใช้จุดทำงาน (actuation point) ที่ตื้นขึ้น polling rate สูงสุด และค่าดีบาวซ์ต่ำสุดที่ยังไม่ทำให้ปุ่มพิมพ์เบิ้ล
การกดปุ่มต้องรอที่ไหนบ้างก่อนคอมพิวเตอร์จะได้รับ
- ระยะกดของปุ่มปุ่มเลื่อนลงไปจนถึงจุดที่สวิตช์ทำงาน
- การสแกนชิปของคีย์บอร์ดไล่ตรวจตารางปุ่มทีละแถว
- ดีบาวซ์รอให้หน้าสัมผัสของสวิตช์หยุดเด้ง หรือไม่สนใจการเด้งนั้น
- โพลลิง USBการกดต้องรอจนกว่าคอมพิวเตอร์จะถามคีย์บอร์ดหาข้อมูลใหม่ในรอบถัดไป
รวมกัน: ความหน่วงของคีย์บอร์ด
หน้าเว็บเริ่มจับเวลาได้ตั้งแต่ตรงนี้เท่านั้น
คอมพิวเตอร์และหน้าจอ เกมนำการกดไปใช้ วาดเฟรม และจอแสดงผลออกมา: ส่วนที่เหลือของอินพุตแล็ก
ความหน่วงมาจากไหน
- ระยะกดของปุ่ม จะไม่มีอะไรเกิดขึ้นจนกว่าปุ่มจะถึงจุดทำงาน เมื่อถ่ายวิดีโอที่ 240 เฟรมต่อวินาที การกดปุ่มตามปกติใช้เวลา 4 ถึง 8 เฟรมกว่าจะลงสุด และระยะกดอย่างเดียวก็เพิ่มความหน่วงได้ถึง 10 ms ได้ง่ายๆ คีย์บอร์ดที่เร็วที่สุดในการทดสอบนั้นก็มีระยะกดสั้นที่สุดแบบทิ้งห่าง
- การสแกน คีย์บอร์ดส่วนใหญ่ต่อสายปุ่มเป็นตาราง แล้วไล่ตรวจทีละแถว คีย์บอร์ดที่สแกนช้าอาจเห็นการกดของคุณหลังจากสวิตช์ปิดวงจรไปแล้วหลายมิลลิวินาที
- ดีบาวซ์ หน้าสัมผัสของสวิตช์จะเด้งอยู่ชั่วขณะตอนปิดวงจร คีย์บอร์ดจะรายงานการกดทันทีแล้วไม่สนใจการเด้ง หรือไม่ก็รอจนหน้าสัมผัสนิ่งก่อน ใน QMK ซึ่งเป็นเฟิร์มแวร์โอเพนซอร์สที่คีย์บอร์ดคัสตอมจำนวนมากใช้ ค่าดีบาวซ์เริ่มต้นคือ 5 ms
- USB polling คอมพิวเตอร์จะถามคีย์บอร์ดหาข้อมูลใหม่ตาม polling rate การกดที่เกิดขึ้นหลังการโพลพอดีจะต้องรอรอบถัดไป
Polling rate ในหน่วยมิลลิวินาที
เวลาระหว่างการโพลสองครั้งเท่ากับ 1,000 ms หารด้วย polling rate โดยเฉลี่ยแล้วการกดแต่ละครั้งต้องรอครึ่งหนึ่งของเวลานั้น
| อัตราโพลลิง | โพลทุก | เวลารอเฉลี่ย |
|---|---|---|
| 125 Hz | 8 ms | 4 ms |
| 250 Hz | 4 ms | 2 ms |
| 500 Hz | 2 ms | 1 ms |
| 1000 Hz | 1 ms | 0.5 ms |
| 8000 Hz | 0.125 ms | 0.0625 ms |
การเปลี่ยนจาก 125 Hz เป็น 1,000 Hz ช่วยลดได้เฉลี่ย 3.5 ms แต่คีย์บอร์ดที่วัดจริงต่างกันมากกว่านั้นหลายเท่า ในปี 2017 Dan Luu วัดคีย์บอร์ด 21 รุ่นได้ 15 ถึง 60 ms และคีย์บอร์ดเกมมิ่งสองรุ่นในนั้นก็ไม่ได้เร็วกว่ารุ่นอื่น
การทดสอบความหน่วงของคีย์บอร์ดทำอย่างไร
- โซลินอยด์และ USB analyzer RTINGS และ LTT Labs ใช้โซลินอยด์กดปุ่ม บันทึกจังหวะที่มันแตะปุ่ม แล้วใช้ USB analyzer บันทึกว่าการกดออกจากคีย์บอร์ดเมื่อไร RTINGS หาค่าเฉลี่ยจากการกด 200 ครั้ง ทั้งสองเจ้าตั้งคีย์บอร์ดให้อยู่ในค่าที่เร็วที่สุดก่อน เช่น ดีบาวซ์ต่ำสุดและ polling rate สูงสุด
- แยกวัดทีละการเชื่อมต่อ LTT Labs วัดแบบใช้สาย ไร้สาย 2.4 GHz และ Bluetooth แยกกัน เพราะความหน่วงอาจต่างกันมากในแต่ละแบบ
- Logic analyzer Dan Luu ใช้เครื่องนี้จับช่วงเวลาระหว่างจังหวะที่เริ่มกดปุ่มกับแพ็กเก็ต USB ที่เกิดจากการกดนั้น
- ที่บ้าน ใช้กล้องหรือเซนเซอร์แสง ถ่ายปุ่มและหน้าจอพร้อมกันแบบสโลว์โมชัน (240 เฟรมต่อวินาทีคือหนึ่งเฟรมทุก 4.2 ms) หรือใช้เซนเซอร์แสงติดหน้าจอ เช่น OSLTT ที่เป็นโอเพนซอร์ส ทั้งสองวิธีจับเวลาทั้งสายตั้งแต่ปุ่มจนถึงหน้าจอ ไม่ใช่เฉพาะคีย์บอร์ด
ทำไมไม่มีเว็บไซต์ไหนทดสอบความหน่วงของคีย์บอร์ดได้
เบราว์เซอร์จะรู้ว่ามีการกดปุ่มก็ต่อเมื่อคีย์บอร์ดส่งออกไปแล้วและคอมพิวเตอร์ส่งต่อมาให้ ทุกอย่างที่หน้านี้อธิบายจึงเกิดขึ้นไปหมดแล้วก่อนที่หน้าเว็บจะเริ่มจับเวลาได้ แบบทดสอบที่จับเวลาตั้งแต่สัญญาณจนถึงตอนคุณกดปุ่มคือการวัดเวลาตอบสนองของคุณ ซึ่งนานกว่าความหน่วงของคีย์บอร์ดมาก สิ่งที่เบราว์เซอร์ตรวจได้คือทุกปุ่มรับสัญญาณหรือไม่และกดพร้อมกันได้กี่ปุ่ม ใน ทดสอบคีย์บอร์ด และปุ่มพิมพ์เบิ้ลหรือไม่ ใน ทดสอบกดเบิ้ล
วิธีลดความหน่วงของคีย์บอร์ด
- ตั้ง polling rate สูงสุด ในแอปของผู้ผลิต ถ้ามีให้ตั้ง
- ลดค่าดีบาวซ์ ถ้าแอปให้ปรับได้ แต่หยุดที่ค่าต่ำสุดที่ยังไม่ทำให้ปุ่มพิมพ์เบิ้ล ถ้าตัวอักษรเริ่มเบิ้ล ดู ทำไมคีย์บอร์ดพิมพ์ตัวอักษรเบิ้ล
- ใช้จุดทำงานที่ตื้นขึ้น คีย์บอร์ดแม่เหล็กและแอนะล็อกให้ตั้งได้ว่าต้องกดลงไปลึกแค่ไหนจึงจะนับ ส่วน Rapid Trigger ในคีย์บอร์ดอย่างของ Wooting ยังทำให้ปุ่มนับว่าปล่อยทันทีที่คุณเริ่มยกนิ้ว และนับว่ากดอีกครั้งทันทีที่กดลงไปใหม่
- เลือกการเชื่อมต่อที่เร็วที่สุดสำหรับเล่นเกม ถ้าคีย์บอร์ดเชื่อมต่อได้หลายแบบ ให้ใช้แบบที่ผลรีวิววัดได้เร็วที่สุด
- จากนั้นดูส่วนอื่นของสาย เฟรมเรตและจอของคุณมักเพิ่มความหน่วงมากกว่าคีย์บอร์ด ดู วิธีลดอินพุตแล็ก
สวิตช์ Linear, Tactile และ Clicky ต่างกันอย่างไร พร้อมตัวเลขจุดทำงานและแรงกดจากผู้ผลิต: สวิตช์คีย์บอร์ด
ที่มา: Dan Luu (ภาษาอังกฤษ), ความหน่วงของคีย์บอร์ด; RTINGS (ภาษาอังกฤษ), วิธีทดสอบความหน่วงของคีย์บอร์ด; LTT Labs (ภาษาอังกฤษ), วิธีที่ Labs ทดสอบคีย์บอร์ด; QMK (ภาษาอังกฤษ), อัลกอริทึมดีบาวซ์; Wooting (ภาษาอังกฤษ), วิธีตั้งค่า Rapid Trigger; OSLTT (ภาษาอังกฤษ), เครื่องมือทดสอบความหน่วงแบบโอเพนซอร์ส