HTML/JavaScript mouse input performance tests

Instructions: Move the mouse around in the box below in a consistent motion. The difference between hardware cursor (mouse pointer) and last recorded mouse position (red box) is mouse input lag. The red circle represents 'two frames' of input lag.

Gray horizontal lines are every 5ms.
blue line: inter-mouse message times (best case is flat line). 8ms is typical for mice/Windows; notebook trackpad is usually around 10ms to 12ms
gray line: mouse move message time offset from rAF time / vsync (best case: consistent sawtooth pattern).

Show hardware cursor Use rAF time argument Graph Override event time with now() Show mouse path

WARNING: It you see a mouse event rate matching your display Hz, the web browser is likely collapsing several mouse events into one event. Here is an example of a 'good' result: