MouseTester.xyz

Teste de latência de clique — Meça o atraso em ms

Clique no alvo para medir o tempo entre o clique hardware e o recebimento do evento pelo navegador.

Clique aqui para amostrar

Clique várias vezes para uma média estável

Amostras

0

Média

--ms

Mín

--ms

Máx

--ms

Latência = performance.now() − PointerEvent.timeStamp. SO, navegador e monitor adicionam latência própria; valores absolutos variam por máquina.

Registro de amostras

Clique no alvo para registrar amostras

What is Mouse Latency?

Mouse latency is the time between pressing a mouse button and the resulting input being available to the application. It is the sum of mechanical actuation delay (the switch closing), USB transport delay (governed by polling rate), OS handling, and browser event delivery.

This test isolates the path from PointerEvent timestamp (assigned at the OS/browser boundary) to the JavaScript handler running. The difference, performance.now() − event.timeStamp, captures how much time elapsed inside the browser pipeline before your code could react.

What Affects Latency?

Connection: Wired mice are typically 1–2 ms ahead of generic wireless. Premium wireless (Logitech Lightspeed, Razer HyperSpeed) closes most of the gap.

Polling rate: 125 Hz means up to 8 ms of buffering; 1000 Hz means up to 1 ms; 4000–8000 Hz approaches sub-millisecond. Higher polling reduces both average latency and its variance.

Display: A 60 Hz monitor adds up to 16.7 ms per frame; 144 Hz adds 6.9 ms; 240 Hz adds 4.2 ms. This is on top of any mouse latency you measure here.

Switch: Optical switches eliminate the mechanical debounce delay (typically 4–10 ms) inherent to mechanical micro-switches.

How to Reduce Latency

Run games in exclusive fullscreen — windowed mode adds compositor latency.

Disable V-Sync, or use G-Sync / FreeSync variable refresh rate to avoid frame-pacing buffers.

Set the polling rate in your mouse driver to the maximum supported value (typically 1000 Hz or higher).

Use the native DPI step on your sensor — interpolated steps add a tiny CPU-side computation.

Upgrade hardware: a 240+ Hz display and a 1000+ Hz mouse are the structural caps on responsiveness.

How the Test Works

PointerEvent.timeStamp is a DOMHighResTimeStamp synchronized with performance.now(). It is set when the browser receives the OS input event. performance.now() is read inside the JS handler. The difference is the in-browser dispatch latency for that click.

This is not the full hardware-to-screen latency — it does not include the time from physical actuation to the OS receiving the event, nor the time from your handler returning to a frame appearing on the display. It does, however, react sensitively to system load: open a heavy tab and re-test to see latency spike.

Perguntas frequentes

It measures the time between the mouse hardware firing a click and the browser's JavaScript receiving the event, computed as performance.now() minus PointerEvent.timeStamp. This is an end-to-end indicator of system input responsiveness, not the mouse hardware in isolation.

Under 5 ms is excellent, 5–10 ms is good, 10–20 ms is average, and over 20 ms is poor. Most desktop systems land in the 1–8 ms range. Wireless mice with non-Lightspeed-class radios may sit at 8–15 ms.

OS task scheduling, browser rendering cycles, and USB polling timing all introduce millisecond-level jitter. Take 30–50 samples and look at the average rather than any single click.

Use a wired (or Lightspeed-class wireless) mouse with 1000 Hz+ polling, run games in fullscreen, disable V-Sync, and use a high-refresh display. Closing background apps that compete for CPU also helps.

No — display latency is measured separately by tools that capture monitor output via a high-speed camera. This test only measures the mouse-to-browser path.