Frame Rate Test

Measure browser-delivered frames with a short warm-up, a five-second sample, and clear timing limits.

Measures browser-delivered frames. This short test estimates callback timing while this tab is visible. It does not read the panel's physical Hz or measure game FPS.

Ready Start a 7-second test
Reduced-motion settings turn this off by default.

The test is idle. Keep this tab visible after you start.

What this browser frame rate test measures

The page records the high-resolution timestamps supplied to consecutive requestAnimationFrame callbacks. It ignores the first two seconds so the browser can settle, then keeps roughly five seconds of timestamps while the document is visible. The estimate uses the median adjacent interval: an interval near 16.67 ms corresponds to about 60 browser-delivered frames per second, while 8.33 ms corresponds to about 120.

Read FPS and display Hz as different measurements

The large result is a browser-delivery estimate. It is not a direct reading from the display panel and it is not the FPS of a game or video. Browsers commonly schedule animation callbacks around the compositor and active display timing, but operating-system settings, power-saving behavior, variable refresh, background work, and moving a window between monitors can alter the sample.

When a stable sample falls within 3% of a familiar rate, the page says it is “near” that browser-delivered rate. An unstable sample keeps its measured decimal result instead of forcing a 60, 120, or 144 label.

Median, p95, maximum, and delayed intervals

The median is the middle interval and drives the FPS estimate. The 95th percentile is the nearest-rank interval at or above 95% of samples; it shows the slower end without letting one extreme pause replace the whole result. Maximum is the single longest interval.

A delayed interval is greater than both 1.5 times the sample median and the median plus 4 ms. For a 16.67 ms baseline, that threshold is about 25 ms. This describes browser callback timing only. Garbage collection, scheduling, another tab, or system work can create a long interval without proving that the physical display dropped a frame.

Compare runs under the same conditions

Keep this tab visible and leave the window on the display being observed. Close demanding tabs, pause large transfers, and keep the same power and display settings when comparing runs. If the tab becomes hidden, the tool discards the partial sample and starts a fresh warm-up when you return so the hidden interval cannot inflate the result.

Low-load and reduced-motion behavior

This tool avoids a GPU or CPU stress mode because heavy drawing would change the task from observing normal browser delivery to benchmarking an artificial load. The moving paw is only a visual cue; it does not determine the result. If your system requests reduced motion, the cue starts off and the numeric measurement still runs. There are no flashes, brightness inversions, permissions, uploads, or stored test history.

Frequently asked questions

How do I run the frame rate test?

Choose Start test and keep this tab visible. The page discards a two-second warm-up, then records about five seconds of adjacent requestAnimationFrame timestamps. If you hide the tab, the partial sample is discarded and the warm-up restarts when you return.

Does this test show my monitor's true refresh rate?

No. It estimates how often this browser tab receives animation callbacks. That result often follows display timing, but browser scheduling, the compositor, operating-system settings, variable refresh rate, power mode, other work, and the monitor used for this window can change it. Check your operating system or monitor controls for the configured physical refresh rate.

What is the difference between FPS and Hz?

FPS describes frames delivered or rendered per second. Hz describes how often a display refreshes. A browser timing result can be near the active refresh rate, but this page cannot directly read the panel's electrical refresh signal and should not be treated as a hardware measurement.

What counts as a delayed interval?

The tool first finds the median interval in your own sample. An interval is labeled delayed only when it is greater than both 1.5 times that median and the median plus 4 milliseconds. The count describes callback timing in this run; it does not prove the monitor dropped a frame.

Why is the result unstable or lower than expected?

Keep the tab focused, pause downloads or demanding pages, connect power if applicable, and confirm the window is on the display you want to observe. Browser throttling, low-power mode, variable refresh behavior, background work, remote desktops, and multi-monitor placement can all change callback delivery. Run several tests under the same conditions before comparing.

Does the test stress my GPU or save results?

No. It uses one low-load timing loop, one optional moving paw, and a result chart created after sampling. It does not run a particle stress test, request fullscreen, upload data, or save a history. Analytics receive only bounded action labels, never your measured FPS or interval values.

Sources and method

Related tools