เพิ่มความหน่วงและจิตเตอร์ให้แอป
ทุกอย่างทำงานได้บนการเชื่อมต่อในเครื่องที่เร็ว ให้ ping 300 ms กับแอปแล้วคุณจะรู้ว่าหน้าจอไหนถูกเขียนราวกับว่าคำตอบมาถึงทันที
สามสิ่งที่ต่างกัน
| การตั้งค่า | ทำอะไร | มาจากไหนในชีวิตจริง |
|---|---|---|
| Latency | เพิ่มความหน่วงเท่ากันให้ทุกแพ็กเก็ต เป็นมิลลิวินาที | ระยะทาง เซิร์ฟเวอร์ที่อยู่ต่างทวีป หรือดาวเทียม |
| Jitter | เพิ่มค่าสุ่มทับลงไป ความหน่วงจึงเปลี่ยนไปเรื่อย ๆ | Wi-Fi ที่ใช้ร่วมกัน เครือข่ายมือถือ ทุกอย่างที่คับคั่ง |
| สไปก์ | การหยุดนิ่งนานเป็นครั้งคราว ตั้งตามความถี่และความยาว | การส่งต่อระหว่างเสาสัญญาณมือถือ เราเตอร์ที่รับโหลดหนัก |
ทั้งสามเป็นมิลลิวินาทีและทำงานพร้อมกันได้ ค่าความหน่วงทั้งสองรับค่าตั้งแต่ 0 ขึ้นไป คุณจึงไปได้ตั้งแต่ 40 ms ที่สมเหตุสมผลถึง 60 วินาทีที่ไร้เหตุผล
จากบรรทัดคำสั่ง
200 ms คงที่ กับจิตเตอร์ 80 ms บนแอปเดียว:
BeanNetworkTester.exe --latency 200 --jitter 80 --target myapp.exe --duration 60
ทางเลือกคือการหยุดนิ่งนานแบบหายาก ประมาณหนึ่งแพ็กเก็ตในยี่สิบรออีกหนึ่งวินาที:
BeanNetworkTester.exe --spike-prob 5 --spike-ms 1000 --target myapp.exe
ตัวเลขที่ควรลอง
- 40 ms เซิร์ฟเวอร์ในประเทศเดียวกัน ไม่ควรมีอะไรเปลี่ยน
- 150 ms ต่างทวีป อะไรก็ตามที่คุยกันบ่อยจะเริ่มรู้สึกช้า เพราะทุกเที่ยวไปกลับมีต้นทุน
- 600 ms ขึ้นไป ดาวเทียมค้างฟ้าหรือ Wi-Fi บนเครื่องบิน ตรงนี้แถบความคืบหน้าจะค้างและตรรกะการลองใหม่ได้ทำงานเสียที
โปรไฟล์สำเร็จรูปมีค่าที่วัดมาแล้ว: “Distant server (another continent)” “Satellite (low orbit)” “Satellite (geostationary)” “In-flight Wi-Fi” “LTE / 4G”
การวัด: ดูกรณีที่แย่ที่สุด ไม่ใช่ค่าเฉลี่ย
จิตเตอร์แทบไม่ขยับค่าเฉลี่ยและแทบไม่ขยับค่ามัธยฐาน การรันที่มีจิตเตอร์ 30 ms กับการรันที่ไม่มีอาจรายงาน ping “ทั่วไป” เกือบเท่ากัน ทั้งที่รู้สึกต่างกันสิ้นเชิง
ให้เปรียบเทียบเปอร์เซ็นไทล์ที่ 95 กับค่ามัธยฐานแทน ช่องว่างระหว่างสองค่านั้นคือจิตเตอร์ และช่องว่างนั้นเองที่ทำให้การโทรด้วยเสียงขาดเป็นช่วง ๆ และเกมเล่นไม่ได้ ขณะที่ค่าเฉลี่ยยังดูปกติ