Latensi keyboard: dari mana jedanya berasal dan cara mengujinya
Latensi keyboard adalah waktu sejak jari kamu mulai menekan tombol sampai keyboard selesai mengirim penekanan itu ke komputer. Waktunya menumpuk di empat tempat: jarak tempuh tombol, pemindaian tombol oleh keyboard, debounce, dan USB polling. Tidak ada situs web yang bisa mengukurnya, karena browser baru tahu ada penekanan setelah keyboard mengirimkannya. Para penguji memakai solenoid yang menekan tombol dan USB analyzer yang mencatat kapan penekanan itu keluar dari keyboard. Untuk menurunkannya, pakai titik aktuasi yang lebih dangkal, polling rate tertinggi, dan pengaturan debounce terendah yang tidak membuat tombol mengetik dua kali.
Tempat penekanan tombol menunggu sebelum sampai ke komputer
- Jarak tempuh tomboltombol turun sampai titik tempat switch aktif
- Pemindaianchip keyboard memeriksa matriks tombol, baris demi baris
- Debouncemenunggu kontak switch berhenti memantul, atau mengabaikan pantulan itu
- USB pollingpenekanan menunggu sampai komputer kembali menanyakan data baru ke keyboard
Semuanya: latensi keyboard
Halaman web baru bisa mulai menghitung waktu di sini
Komputer dan layar game memakai penekanan itu, menggambar frame, dan layar menampilkannya: sisa input lag kamu
Dari mana jeda berasal
- Jarak tempuh tombol. Tidak ada yang terjadi sampai tombol mencapai titik aktuasinya. Saat direkam pada 240 frame per detik, satu penekanan biasa butuh 4 sampai 8 frame untuk turun sepenuhnya, dan jarak tempuh ini saja bisa dengan mudah menambah 10 ms. Keyboard tercepat dalam tes itu juga punya jarak tempuh yang jauh paling pendek.
- Pemindaian. Sebagian besar keyboard menyambungkan tombolnya dalam bentuk matriks dan memeriksanya baris demi baris. Keyboard yang memindai dengan lambat bisa baru melihat penekanan kamu beberapa milidetik setelah switch tertutup.
- Debounce. Kontak switch memantul sesaat ketika tertutup. Keyboard bisa langsung melaporkan penekanan dan mengabaikan pantulannya, atau menunggu sampai kontaknya stabil. Di QMK, firmware open source yang dipakai banyak keyboard custom, waktu debounce bawaannya 5 ms.
- USB polling. Komputer menanyakan data baru ke keyboard sesuai polling rate-nya. Penekanan yang terjadi tepat setelah satu polling harus menunggu polling berikutnya.
Polling rate dalam milidetik
Jarak waktu antara dua polling adalah 1.000 ms dibagi polling rate. Rata-rata, sebuah penekanan menunggu separuhnya.
| Polling rate | Polling setiap | Rata-rata waktu tunggu |
|---|---|---|
| 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 |
Beralih dari 125 Hz ke 1.000 Hz menghemat rata-rata 3,5 ms. Perbedaan antar-keyboard yang sudah diukur jauh lebih besar dari itu: pada 2017 Dan Luu mengukur 21 keyboard dengan hasil 15 sampai 60 ms, dan dua keyboard gaming di antaranya tidak lebih cepat daripada yang lain.
Cara menguji latensi keyboard
- Solenoid dan USB analyzer. RTINGS dan LTT Labs menekan tombol dengan solenoid, menandai saat solenoid menyentuh tombol, lalu mencatat dengan USB analyzer kapan penekanan itu keluar dari keyboard. RTINGS mengambil rata-rata dari 200 penekanan. Keduanya lebih dulu mengatur keyboard ke pengaturan tercepatnya, misalnya debounce terendah dan polling rate tertinggi.
- Setiap koneksi diukur sendiri-sendiri. LTT Labs mengukur koneksi kabel, nirkabel 2,4 GHz, dan Bluetooth secara terpisah, karena latensinya bisa sangat berbeda di antara ketiganya.
- Logic analyzer. Dan Luu memakainya untuk mengukur jeda antara awal penekanan tombol dan paket USB yang dihasilkannya.
- Di rumah: kamera atau sensor cahaya. Rekam tombol dan layar bersamaan dalam gerak lambat (240 frame per detik berarti satu frame setiap 4,2 ms), atau pasang sensor cahaya di layar, misalnya OSLTT yang open source. Keduanya mengukur seluruh rantai dari tombol sampai layar, bukan keyboard saja.
Kenapa tidak ada situs web yang bisa menguji latensi keyboard
Browser baru tahu ada penekanan tombol setelah keyboard mengirimkannya dan komputer meneruskannya, jadi semua yang dijelaskan di halaman ini sudah terjadi sebelum halaman web bisa mulai menghitung waktu. Tes yang mengukur waktu dari sebuah sinyal sampai kamu menekan tombol sebenarnya mengukur reaksi kamu, yang jauh lebih lama daripada keyboard. Yang bisa diperiksa browser adalah apakah setiap tombol terbaca dan berapa banyak tombol yang berfungsi sekaligus, di tes keyboard, serta apakah sebuah tombol mengetik dua kali, di tes tekan ganda.
Cara menurunkan latensi keyboard
- Atur polling rate tertinggi di aplikasi produsen, jika pengaturannya tersedia.
- Turunkan debounce, jika aplikasinya mengizinkan, tetapi berhenti di pengaturan terendah yang tidak membuat tombol mengetik dua kali. Jika huruf mulai ganda, baca kenapa keyboard mengetik huruf ganda.
- Pakai titik aktuasi yang lebih dangkal. Keyboard magnetik dan analog memungkinkan kamu mengatur seberapa jauh tombol harus turun sebelum dihitung. Rapid Trigger, di keyboard seperti buatan Wooting, juga membuat tombol langsung terlepas begitu kamu mulai mengangkatnya, dan langsung tertekan lagi begitu kamu mendorongnya turun.
- Pilih koneksi tercepat untuk game. Jika keyboard kamu bisa terhubung dengan lebih dari satu cara, pakai koneksi yang terukur paling cepat dalam review.
- Lalu periksa bagian lain dari rantainya. Frame rate dan layar kamu biasanya menambah jeda lebih banyak daripada keyboard: lihat cara mengurangi input lag.
Beda switch linear, tactile, dan clicky, dengan angka pabrikan untuk titik dan gaya aktuasi: switch keyboard.
Sumber: Dan Luu (bahasa Inggris), Latensi keyboard; RTINGS (bahasa Inggris), metode tes latensi keyboard; LTT Labs (bahasa Inggris), Cara Labs menguji keyboard; QMK (bahasa Inggris), Algoritma debounce; Wooting (bahasa Inggris), Cara mengatur Rapid Trigger; OSLTT (bahasa Inggris), Open Source Latency Test Tool (alat uji latensi open source).