Skip to main content
Documentation menu
On this page

Display

Display FPS Test

Measure the frame rate your browser is actually delivering, with 1% lows and jitter.

  • Available — Live on this site right now.
  • Browser Tool — Runs in the browser you are reading this in.
  • No Install — Nothing to download, no extension, no account.
  • Client-Side — Runs entirely on your device. No test data is uploaded.

Live tool: /display-fps-test/

This page explains the tool. The tool itself is one click away and needs no sign-in.

Open Display FPS Test

What is this tool?

The Display FPS Test animates a canvas and times every frame the browser hands it. From those intervals it reports the frame rate you are getting right now, the average across the run, the slowest frames, and how evenly the frames were spaced.

It works from requestAnimationFrame timestamps and performance.now(). That is the same clock a browser game runs on, so the number it produces is the frame rate your browser can deliver on this page — not a figure read out of the graphics driver.

Nothing leaves the page. The test runs on your own device, and saved results stay in your browser's storage.

How to use it

  1. Choose how long to runDurations are 15s, 30s, 60s and 120s. Short runs answer “am I at 60 or 144?” quickly; the longer runs are the ones that expose occasional stutter, because a hitch that happens once a minute will not show up in fifteen seconds.
  2. Set the target refresh rateTarget can be left on Auto or pinned to 60, 75, 120, 144, 165, 240 or 360 Hz. Auto is the usual choice — the page estimates your refresh rate first and compares against that. Pinning a target is useful when you already know what the display is set to and want to see whether the browser is keeping up with it.
  3. Pick a render loadThree presets change how much work each frame does: normal rendering, heavy canvas load, and minimal workload. Minimal shows the ceiling your browser can reach. Heavy shows what happens when something demanding is on screen, which is where dropped frames usually appear.
  4. Press Start FPS Test and leave the tab aloneBrowsers throttle background tabs, so switching away mid-run will ruin the sample. Let the run finish, then read the result card. Run Again repeats with the same settings, Save Result keeps it locally, and Reset clears the numbers.

What the results mean

Average FPS

The mean frame rate over the run. On a healthy setup this sits just under your refresh rate — about 59–60 on a 60 Hz panel, about 141–144 on a 144 Hz one. A browser cannot exceed the refresh rate it is composited against, so a flat ceiling is normal, not a fault.

1% low and 0.1% low

These come from the slowest frames in the run: the 1% low is derived from the 99th-percentile frame interval, and the 0.1% low from the 99.9th percentile. They describe the worst moments rather than the typical one, which is why a run can average 144 and still feel rough — the lows are where stutter lives.

Jitter and frame stability

Jitter is the average difference between one frame interval and the next, in milliseconds — lower is smoother. Frame stability is the share of frames that landed within ±10% of the mean interval. High average FPS with poor stability means frames are arriving unevenly, which the eye notices even when the average looks fine.

The performance score and its label

The score is a weighted blend: FPS stability 35%, frame consistency 30%, dropped frames 20%, rendering smoothness 15%. It maps to Ultra Smooth at 95 and above, Excellent at 88, Good at 75, Fair at 60, and Poor below that. It is a summary of the four columns above, not a separate measurement.

Why gains flatten out

The page explains this in its own section, and the numbers show it: moving from 60 to 120 halves frame time by about 8 ms, while moving from 240 to 360 saves only about 1.4 ms. The measured difference gets smaller as the numbers get bigger.

What it can detect

  • A browser frame rate that is capped well below the display's refresh rate
  • Frames arriving unevenly — low jitter versus high jitter is visible in the graph
  • Dropped and long frames during a heavy render load
  • A large gap between average FPS and the 1% low, which is the signature of periodic stutter
  • Whether a high-refresh display is actually running at its high refresh rate in this browser

Limits worth knowing

A browser can only report what the platform gives it. These are the honest boundaries of this page, so a result is never read as more than it is.

  • This measures the frame rate the browser delivers to this page. It is not a readout of your monitor's refresh rate setting, your GPU's driver counters, or the frame rate any other application is getting.
  • The refresh-rate estimate is exactly that: an estimate. The engine times 50 animation frames, takes the median interval, and snaps to a standard rate only when it lands within 4.5% of one — 60, 75, 90, 100, 120, 144, 165, 240, 360, 480 or 540 Hz. Anything else is shown with a tilde and the word Estimated, and when there are too few usable samples it reports Not available instead of guessing.
  • The page answers “Can a browser test monitor refresh rate?” in its own FAQ, and the answer is the same one here: it can observe frame pacing, not query the panel.
  • Variable-refresh displays (G-SYNC, FreeSync) deliberately change refresh rate to follow the frame rate, so a single fixed number means less on those panels.

Tips

  • Close other tabs and any recording or streaming software first. They compete for the same GPU and will drag the numbers down.
  • Run it in fullscreen. Browsers often composite fullscreen content on a faster path than a windowed tab.
  • Compare a minimal-workload run with a heavy-load run. The difference between the two tells you far more than either number alone.

Troubleshooting

The result is about 60 FPS but I have a 144 Hz monitor.

Check that the display is set to 144 Hz in your operating system — Windows often reverts to 60 Hz after a driver update or a cable change. Also confirm the monitor is on a cable and port that can carry 144 Hz at your resolution, and that the browser window is on that monitor rather than a second 60 Hz one.

FPS collapsed halfway through the run.

Almost always a background task — an update, a virus scan, or a laptop dropping to battery power and reducing its GPU clocks. Plug the laptop in, wait for background work to finish, and run again.

The average looks good but the animation feels choppy.

Look at the 1% low and the jitter figure. That combination — good average, poor lows — is exactly what choppiness is. Try the minimal workload preset to see whether the page's own rendering is the cause.

The refresh-rate readout says Not available.

The estimator needs at least 25 usable frame intervals out of 50 attempts. A heavily loaded machine or a throttled background tab will not supply them. Bring the tab to the foreground, wait a moment and press Start again.

Ready to run it?

Measure the frame rate your browser is actually delivering, with 1% lows and jitter. Nothing to install, and it opens in this browser.