Ukur satu bagian waktu browser, bukan latensi end-to-end
Jam dimulai setelah wheel event mencapai skrip halaman dan berakhir pada callback render berikutnya. Input fisik, transport USB, presentasi compositor, dan respons pixel tidak diukur lengkap.
Cara menggunakan Tes Latensi Scroll
Stabilkan lingkungan
Biarkan tab terlihat, hindari berpindah jendela, dan tutup beban berat bila memungkinkan.
Mulai dan gulir
Gunakan roda secara normal untuk minimal dua belas event. Kartu aktif menahan gerak halaman saat menjadwalkan callback frame.
Baca distribusi
Bandingkan median dan P95 bersama konteks frame. Ulangi pada beban sama sebelum membandingkan browser atau perangkat.
Cara tes latensi scroll menghitung waktu
Setiap WheelEvent tepercaya di kartu aktif mendapat timestamp browser lalu menjadwalkan frame animasi berikutnya. Selisih timestamp callback dan penerimaan event menjadi delay event-ke-frame. Sampel dibatasi dan dihitung lokal tanpa mengunggah deretan waktu mentah.
Pengukuran dimulai terlambat dalam rantai input dan berakhir sebelum pixel pasti terlihat. Nilai bukan latensi mouse fisik end-to-end, click latency, waktu USB lengkap, scanout display, atau respons pixel. Ini hanya perkiraan timing browser dan render loop.
Membaca median, P95, dan rentang
Terbaru adalah pengukuran terakhir. Median mewakili tengah sampel dan tidak mudah dikuasai satu jeda panjang. P95 menunjukkan ekor distribusi, sedangkan minimum dan maksimum menunjukkan rentang yang terlihat. Tidak ada satu angka baik universal karena posisi event terhadap frame berikutnya selalu berubah.
Event sesaat sebelum callback dapat memiliki delay sangat kecil; event sesaat setelah callback dapat menunggu hampir satu frame. Penjadwalan sistem, daya, extension, dan beban halaman menambah variasi. Bandingkan distribusi pada kondisi sama, bukan satu nilai minimum.
Konteks frame bukan polling rate
Halaman mengamati interval callback animasi dan menampilkan median serta estimasi hertz. Sekitar 60 Hz berarti kurang lebih 16,7 ms per frame, tetapi variable refresh dan throttling dapat mengubahnya. Tab latar dapat melambat meski mouse tidak berubah.
Frekuensi callback render bukan polling rate mouse. Polling menggambarkan pelaporan input, sedangkan `requestAnimationFrame` mengikuti jadwal gambar browser. Gunakan tes polling rate mouse untuk estimasi event gerak browser; jangan menggabungkan kedua metrik sebagai satu nilai hardware.
Variasi, penelusuran, dan batas
Sistem operasi, main thread, compositor, refresh display, power saving, aplikasi latar, extension, dan developer tools memengaruhi hasil. Smooth scrolling dapat menambah animasi setelah callback yang diukur. Beberapa event roda juga dapat menunggu frame yang sama.
Ulangi dua atau tiga sesi 20–50 event dengan browser, zoom, display, dan beban sama. Jika scrolling terasa lambat, periksa smooth scrolling, handler aplikasi, extension, dan frame context. Hasil hanya boleh disebut delay penerimaan-event ke frame berikutnya, bukan bukti masalah hardware.
Pertanyaan umum tentang Tes Latensi Scroll
Apakah tes mengukur total latensi scroll mouse?
Tidak. Waktu dimulai ketika skrip menerima event dan berhenti pada callback animasi berikutnya.
Mengapa minimum bisa mendekati nol?
Event dapat tiba tepat sebelum callback frame, meski jalur fisik-ke-display keseluruhan lebih panjang.
Apakah konteks frame sama dengan polling rate?
Tidak. Konteks frame mengikuti render browser; polling rate berkaitan dengan pelaporan input.
Berapa sampel yang diperlukan?
Minimal dua belas untuk ringkasan awal; dua puluh hingga lima puluh event terkontrol biasanya lebih mewakili distribusi.