Input Lag Test
Measure how many milliseconds pass from a key press, click or tap to the browser reaction and the next rendered frame.
-
1Enter data
Enter content, paste text or load a file from disk. -
2Click the button
The tool will immediately process your data in the browser. -
3Get the result
Copy the finished text or save the file to your device.
return "Result ready in 0.1s";
}
| Input | Samples | Delay, median [ms] | To frame, median [ms] | To frame, p95 [ms] | Range [ms] |
|---|
The test measures the part the browser can see: from the moment the system hands over the event (the event timestamp) to the start of its handling and to the next rendered frame. It does not include USB polling of the keyboard or mouse, or image processing inside the monitor. Everything runs locally, so nothing is sent to a server.
Rate this tool:
Related tools
Other tools you may find usefulThe input lag test measures how much time passes from a key press, mouse click or screen tap to the moment the browser starts handling that event and draws the next frame. You get the result in milliseconds, separately for keyboard, mouse, touch and pen.
How to run the test
- Click the test box. From then on it is active and accepts key presses.
- Press any keys, click the box or tap it with a finger. Every press is one sample; holding a key down does not count more than once.
- Collect at least 20 samples. The verdict appears from the fifth sample, but a median of twenty is much more stable.
- The "Copy result" button puts a summary with the median, 95th percentile, minimum, maximum and your browser name on the clipboard, which is handy for comparing two computers or settings.
At the start the tool also measures your screen refresh rate from the intervals between frames. That value is needed to judge the result: on a 60 Hz monitor a frame lasts about 16.7 ms, on a 144 Hz one about 6.9 ms.
What exactly the tool measures
Every browser event carries a timestamp that the system assigns when it hands the input over to the browser. The test compares that timestamp with two moments:
- input delay: the time from the event timestamp to the start of its handling by the page. On a light page this is usually a fraction of a millisecond; more means the browser's main thread was busy,
- time to next frame: the time from the event timestamp to the moment the browser prepares the frame with the changed box (measured with
requestAnimationFrame), - estimated time to display: the time to the next frame plus one frame, because the finished picture reaches the screen on the following refresh.
The tool shows the median rather than the average, because single hiccups (for example when the system updates something in the background) would inflate the average. The worst cases are described by the 95th percentile: 95 out of 100 samples were faster.
What the test does not cover
The browser cannot see what happens before the timestamp is assigned or after the picture is sent to the monitor. Outside the measurement are:
- USB polling: the keyboard or mouse reports to the computer at a fixed interval,
- matrix scanning and switch debouncing inside the keyboard,
- image processing in the monitor or TV and pixel response time.
Full "finger to pixel" latency can only be measured with a high-speed camera or a light sensor on the screen. This test shows the part that depends on the browser and the system, which is exactly the part you can most easily improve with settings.
Frame time at common refresh rates
The time to the next frame depends mostly on where in the refresh cycle you pressed the key. That is why the test rates the result in frames rather than in fixed milliseconds.
| Refresh rate | One frame | "Good" (up to 1.5 frames) | "Average" (up to 2.5 frames) |
|---|---|---|---|
| 60 Hz | 16.7 ms | up to 25.0 ms | up to 41.7 ms |
| 75 Hz | 13.3 ms | up to 20.0 ms | up to 33.3 ms |
| 120 Hz | 8.3 ms | up to 12.5 ms | up to 20.8 ms |
| 144 Hz | 6.9 ms | up to 10.4 ms | up to 17.4 ms |
| 165 Hz | 6.1 ms | up to 9.1 ms | up to 15.2 ms |
| 240 Hz | 4.2 ms | up to 6.3 ms | up to 10.4 ms |
A result above 2.5 frames is marked as high latency. If, in addition, the handling of the event starts more than 8 ms after its timestamp, the tool tells you that the page's main thread was busy.
USB polling: the part the browser cannot see
Mice and keyboards send data at a fixed rate. The higher the rate, the shorter a press waits to be sent. The average wait is half of the polling period.
| Polling rate | Period | Average wait |
|---|---|---|
| 125 Hz (typical office devices) | 8 ms | 4 ms |
| 500 Hz | 2 ms | 1 ms |
| 1000 Hz (typical gaming devices) | 1 ms | 0.5 ms |
| 8000 Hz | 0.125 ms | 0.0625 ms |
How to reduce input lag
- Close heavy tabs (video, online editors, browser games) and turn off unneeded extensions, because they compete for the same CPU.
- Turn on hardware acceleration in your browser settings.
- On a laptop, plug in the charger and choose a performance power mode. Power saving lowers CPU clocks and can cap the frame rate.
- If your monitor supports a higher refresh rate, enable it in the system settings, which shortens every frame.
- Repeat the test in another browser. Differences between browsers on the same computer can be larger than between mice.
Human reaction time is a different measurement; check it with the reaction time test. You can verify individual keys with the keyboard test and frame smoothness with the screen FPS test.
Frequently asked questions
Does this test measure full monitor input lag?
No. It measures the span from the event timestamp to its handling and to the next frame in the browser. USB polling and image processing in the monitor are out of reach for a web page.
Why do consecutive samples differ?
Each press lands at a random point in the screen refresh cycle. Sometimes the frame starts right after it, sometimes almost a full frame later. That is why the median of many samples matters, not a single result.
Does the result depend on the browser?
Yes. Each browser schedules event handling and frame drawing differently. Always compare results in the same browser, or test several on purpose to pick the fastest one.
Does the test work on a phone?
Yes. Taps on the test box are counted as a separate input type. On a phone with a 90 or 120 Hz screen the tool detects the higher refresh rate and rates the result accordingly.
What does the busy main thread message mean?
Event handling started more than 8 ms after the event timestamp. The browser was doing other work at that moment, for example running a script from another tab or an extension. Close unneeded tabs and repeat the test.
Is my data sent anywhere?
No. Measuring and calculating happen entirely in your browser. The page does not store the keys you press or your results.