MouseTester.xyz

Test de latence de clic — Mesurez le décalage en ms

Cliquez sur la cible pour mesurer le temps entre le clic matériel et la réception de l'événement par le navigateur.

Cliquez ici pour échantillonner

Cliquez plusieurs fois pour une moyenne stable

Échantillons

0

Moyenne

--ms

Min

--ms

Max

--ms

Latence = performance.now() − PointerEvent.timeStamp. OS, navigateur et écran ajoutent chacun de la latence ; les valeurs absolues varient selon la machine.

Journal des échantillons

Cliquez sur la cible pour enregistrer

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.

Foire aux questions

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.