Klavye gecikmesi: nereden gelir ve nasıl test edilir
Klavye gecikmesi, parmağının bir tuşa basmaya başladığı andan klavyenin bu basışı bilgisayara gönderdiği ana kadar geçen süredir. Dört yerde birikir: tuşun aşağı inişi, klavyenin tuşları taraması, debounce ve USB polling. Hiçbir web sitesi bunu ölçemez, çünkü tarayıcı bir basıştan ancak klavye onu gönderdikten sonra haberdar olur. Test yapanlar tuşa basan bir solenoid ve basışın klavyeden ne zaman çıktığını kaydeden bir USB analizörü kullanır. Gecikmeyi azaltmak için daha kısa bir aktivasyon mesafesi, en yüksek polling rate ve tuşların çift yazmasına yol açmayan en düşük debounce ayarını kullan.
Bir tuş basışı bilgisayara ulaşmadan önce nerelerde bekler
- Tuşun inişituş, switch'in tetiklendiği noktaya kadar aşağı iner
- Taramaklavyenin çipi tuş matrisini satır satır kontrol eder
- Debounceswitch kontağının sıçraması bitene kadar bekler ya da sıçramayı yok sayar
- USB pollingbasış, bilgisayar klavyeye bir sonraki kez yeni bir şey olup olmadığını sorana kadar bekler
Hepsi birlikte: klavye gecikmesi
Bir web sayfası saatini ancak burada başlatabilir
Bilgisayar ve ekran oyun basışı işler, bir kare çizer ve ekran onu gösterir: input lag'inin geri kalanı
Gecikme nereden gelir
- Tuşun inişi. Tuş aktivasyon noktasına ulaşana kadar hiçbir şey olmaz. Saniyede 240 kareyle çekilen görüntülerde normal bir basışta tuşun sonuna kadar inmesi 4 ila 8 kare sürdü; yalnızca bu iniş kolayca 10 ms ekleyebilir. O testteki en hızlı klavye, açık ara en kısa tuş yoluna da sahipti.
- Tarama. Çoğu klavye tuşlarını bir matris halinde bağlar ve bu matrisi satır satır kontrol eder. Yavaş tarayan bir klavye, basışını switch kapandıktan birkaç milisaniye sonra görebilir.
- Debounce. Switch kontağı kapanırken bir anlığına sıçrar. Klavye ya basışı hemen bildirip sıçramayı yok sayar ya da kontak oturana kadar bekler. Birçok özel klavyede çalışan açık kaynaklı ürün yazılımı QMK'de varsayılan debounce süresi 5 ms'dir.
- USB polling. Bilgisayar, polling rate'in belirlediği sıklıkta klavyeye yeni bir şey olup olmadığını sorar. Bir yoklamanın hemen ardından yapılan basış bir sonraki yoklamayı bekler.
Milisaniye cinsinden polling rate
İki yoklama arasındaki süre, 1.000 ms'nin polling rate'e bölünmesiyle bulunur. Bir basış ortalama olarak bunun yarısı kadar bekler.
| Polling rate | Yoklamalar arası süre | Ortalama bekleme |
|---|---|---|
| 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'den 1.000 Hz'e geçmek ortalama 3,5 ms kazandırır. Ölçülen klavyeler arasındaki fark bundan çok daha büyüktür: Dan Luu 2017'de 21 klavyeyi ölçtü ve 15 ila 60 ms arasında değerler buldu; aralarındaki iki oyuncu klavyesi diğerlerinden hızlı değildi.
Klavye gecikmesi nasıl test edilir
- Bir solenoid ve bir USB analizörü. RTINGS ve LTT Labs tuşa bir solenoidle basar, solenoidin tuşa değdiği anı işaretler ve basışın klavyeden ne zaman çıktığını bir USB analizörüyle kaydeder. RTINGS 200 basışın ortalamasını alır. İkisi de önce klavyeyi en hızlı ayarlarına getirir; örneğin en düşük debounce ve en yüksek polling rate.
- Her bağlantı ayrı ayrı. LTT Labs kablolu, 2,4 GHz kablosuz ve Bluetooth bağlantıyı ayrı ayrı ölçer, çünkü gecikme bunlar arasında çok değişebilir.
- Bir lojik analizör. Dan Luu, bir tuş basışının başlangıcı ile bu basışın ürettiği USB paketi arasındaki süreyi ölçmek için lojik analizör kullandı.
- Evde bir kamera ya da ışık sensörü. Tuşu ve ekranı ağır çekimde birlikte çek (saniyede 240 kare, her 4,2 ms'de bir kare demektir) ya da ekrana açık kaynaklı OSLTT gibi bir ışık sensörü yerleştir. İkisi de yalnızca klavyeyi değil, tuştan ekrana kadar tüm zinciri ölçer.
Klavye gecikmesini neden hiçbir web sitesi test edemez
Tarayıcı bir tuş basışını ancak klavye onu gönderdikten ve bilgisayar onu ilettikten sonra öğrenir; yani bu sayfada anlatılan her şey, bir web sayfası saatini başlatmadan önce çoktan olmuştur. Seni bir sinyalden tuş basışına kadar ölçen bir test refleksini ölçer ve refleks, klavyeden çok daha uzun sürer. Tarayıcının kontrol edebileceği şeyler, klavye testinde her tuşun algılanıp algılanmadığı ve aynı anda kaç tuşun çalıştığı, çift basma testinde ise bir tuşun iki kez yazıp yazmadığıdır.
Klavye gecikmesi nasıl azaltılır
- En yüksek polling rate'i seç: üreticinin uygulamasında böyle bir ayar varsa oradan.
- Debounce süresini kısalt, uygulama buna izin veriyorsa; ama tuşların çift yazmasına yol açmayan en düşük ayarda dur. Harfler çift çıkmaya başlarsa klavyenin neden çift harf yazdığını oku.
- Daha kısa bir aktivasyon mesafesi kullan. Manyetik ve analog klavyeler, bir tuşun sayılmadan önce ne kadar inmesi gerektiğini ayarlamana izin verir. Wooting'inkiler gibi klavyelerdeki Rapid Trigger ayrıca tuşu, kaldırmaya başladığın anda bırakılmış, yeniden aşağı ittiğin anda da tekrar basılmış sayar.
- Oyunlar için en hızlı bağlantıyı seç. Klavyen birden fazla şekilde bağlanabiliyorsa bir incelemede en hızlı ölçülen bağlantıyı kullan.
- Sonra zincirin geri kalanına bak. Kare hızın ve ekranın genellikle klavyeden daha fazla gecikme ekler: input lag nasıl azaltılır sayfasına bak.
Lineer, tactile ve clicky switchlerin farkı, üreticinin aktivasyon noktası ve kuvvet değerleriyle: klavye switchleri.
Kaynaklar: Dan Luu (İngilizce), Klavye gecikmesi; RTINGS (İngilizce), klavye gecikmesi test yöntemi; LTT Labs (İngilizce), Labs klavyeleri nasıl test ediyor; QMK (İngilizce), Debounce algoritması; Wooting (İngilizce), Rapid Trigger nasıl ayarlanır; OSLTT (İngilizce), Open Source Latency Test Tool (açık kaynaklı gecikme testi aracı).