Tools/Screen Tests

FPS Test

Check your browser frame rate live with a current, average and 1% low FPS counter and frame-time graph, compare 24, 30, 60, 120, 144 and 240 fps side by side, and add rendering load to see how far the frame rate drops.

Current frame rate
--fps
Warming up, keep this tab in front...
Average
--fps
1% low
--fps
Min / max
-- / --fps
Frame time
--ms
Paint rate
--Hz
Frame time, last 240 frames (spikes are stutters)

This counts frames the browser presented, not the refresh setting in Windows or macOS. With nothing heavy running it often sits near the display refresh, but battery saver and some browsers cap pages at 60 fps even on a faster panel. Min and max are the lowest and highest half-second readings since the last reset.

FPS comparison: 24 vs 30 vs 60 vs 120 vs 144 vs 240

Each square moves along the same path, but a lane only updates when its frame interval has passed. Watch the edges of the squares: lower rates jump in bigger steps and look less sharp in motion.

Load test and browser benchmark

0

The load is capped at 20,000 particles and drops automatically if the page falls under 10 fps. The score compares browsers and devices; it is not a game benchmark.

Is your screen as smooth as the box says?

FPS and refresh rate are not the same thing

FPS is how many frames the game or browser makes each second. Refresh rate, in Hz, is how many times the monitor redraws. A game can render 300 fps on a 60 Hz panel and you still only see 60 new images a second. A browser goes the other way and stops at the refresh rate, so on a 144 Hz monitor this page should read close to 144 fps. If it reads 60, check the setup with the refresh rate test.

Why 1% lows matter more than the average

The average hides stutter. A run that holds 16.7 ms frames but drops one 100 ms frame every second still averages about 55 fps, yet you feel the hitch. The 1% low is the frame rate of the slowest 1% of frames. When it sits within about 20% of the average, motion feels smooth. A big gap points to background tasks, thermal throttling or a struggling GPU, and shows up as spikes in the frame-time graph.

What the comparison shows

At 24 and 30 fps the square jumps visibly from place to place. 60 fps looks fluid at a glance, while 120 and 144 fps make fast motion easier to track and the edges blur less, which is why competitive players care. Past 144 the gains get smaller. A lane faster than the frames this page is receiving can only repeat the native lane, which may be the panel or a browser cap. Blur and trails also depend on pixel response, which the monitor ghosting test checks.

This measures the browser, not a game

Everything here runs in a 2D canvas on the main thread, so the score depends on the browser, the CPU and power settings as much as the graphics card. Use it to compare browsers or spot a laptop stuck in power saving mode, not to predict in-game FPS. For a heavier GPU load use the GPU stress test.

Related tools

Compare the painted frame rate with the refresh rate test, catch dropped frames with the frame skipping test, check motion trails with the monitor ghosting test, or push your graphics card with the GPU stress test.

FAQ

Frequently asked questions

Is this my monitor refresh rate?

No. This page counts frames the browser presented. While this tab is visible and the browser is not capping animation, that rate often tracks the display refresh. It does not read the refresh setting in Windows or macOS, and it is not a game frame rate.

Why can a 144 Hz panel show 60 fps here?

Browsers usually present at most one frame per refresh, but many also cap pages at 60 fps. Battery saver, a low-power mode, and some browsers do that on a faster panel. Grey lanes mean this page is not getting frames fast enough to show those rates. They do not prove the panel tops out at the number you see. Use the refresh rate test and check the display setting in the OS.

Does the tab have to stay visible?

Yes. A background tab is throttled, often to about one frame a second. Those slow frames are not your screen. This page drops any gap that touches hidden time, pauses the readout, and starts a fresh sample when you come back. Leave the tab in front while you read the numbers or run the load test.

Is the particle count a game or GPU benchmark?

No. The particles are flat canvas drawing on the main thread. The count is how many this page could draw while staying near 60 presented frames per second, or near the idle rate when that is lower. It can compare browsers on the same machine. It does not predict FPS in a game and it does not score a graphics card. The run stops at 20,000 particles.

What do the 500 ms number, the average and the 1% low mean?

The big number is presented frames over the last 500 ms. It stays a dash through a 20-frame warmup and until 10 frame gaps are in the sample. The average uses up to the last 1,000 frame gaps. The 1% low is the rate of the slowest 1% of those gaps, and it stays a dash until 100 gaps are in the sample so one hitch is not mislabeled. Min and max are the lowest and highest 500 ms readings since the last reset.

Why do some comparison lanes look the same?

Each lane steps its square at 24, 30, 60, 120, 144 or 240 fps. The native lane moves on every frame the browser presents. A faster lane cannot look smoother than native, so it is greyed out. That happens when the panel refreshes at the lower rate and also when a faster panel is capped by the browser.

Why do I see a dash instead of 0 fps?

An empty sample is not 0 fps, and one frame is not a result. The first frame only starts the clock. Until a real window is ready the readout is a dash. Hidden time is left out, so a throttled background tab is not stored as a low frame rate.