FPS Counter

A live, in-browser frame rate counter. Start measuring and this page reports current FPS, averages, max/min and 1% lows using the browser's own rendering pipeline.

This counter drives the browser rendering pipeline with requestAnimationFrame — exactly the loop a browser-based game or WebGL app uses — so the numbers reflect real page performance on your machine.

Important: it measures this page's frame rate, not your desktop games. Use it to test web games, animated dashboards, or how much headroom your PC has in the browser.

current FPS

Idle — press Start to measure.

Average
Max
Min
1% lows
Frame time

Measuring pauses automatically when the tab is hidden.

How it works

The tool hooks the same requestAnimationFrame callback your browser uses to paint. Each frame's delta becomes a frame time; FPS = 1000 ÷ frame time. Histograms of the last 1500 frames compute averages and 1% lows — the 1% low is how bad your worst sustained dips really are.

Example

A steady page reports ~60 FPS on a 60 Hz monitor with a 16.7 ms frame time. If you see 30 FPS (33 ms), the pipeline is missing half its paint deadlines — that's stutter you will feel.

The math behind it

FPS = 1000 ÷ frame-time (ms) · 1% low = the 1st percentile of sorted frame times

Frequently Asked Questions

Why does the counter show my monitor refresh rate?

The browser only repaints when it can, and it waits for the display. On a 60 Hz panel, measured FPS rarely exceeds 60 unless a high-refresh mode is active.

Does this affect my game's FPS?

Measuring uses a tiny requestAnimationFrame callback. On a modern device the overhead is negligible, but close other browser tabs before judging results.

What are "1% lows"?

The average frame time of the worst 1% of frames. It's the closest proxy for perceived stutter — two rigs can show the same average FPS but wildly different smoothness if one has bad dips.