Frame Rate Checker

The detailed one

Every frame, not just the average

One bar per frame, a distribution showing where they cluster, and the lows that explain stutter an average will never admit to.

  • One bar per frame
  • 1% and 0.1% lows
  • Pacing and jitter
  • Stress slider
Frame timing
Runtime 00:00

Each bar is one frame. Tall red bars arrived late.

0 FPS ms
Frame rate · last 60 seconds
Frame time distribution
Frame time trace0%
Average
Minimum
Maximum
1% low
0.1% low
Frame time
Dropped0
Frames0
Stability
Pacing
Jitter
Estimated refresh rate Hz

Press start to begin measuring.

Stress level

Loads the GPU the way a heavier scene would

0%
Objects 0 Impact

The frame time view opens first here on purpose. The average is the least informative number on the page — the shape of the bars is where the answer is.

Why use frame time instead of FPS?

Because milliseconds add up and frame rates do not. If a scene costs 8 ms and you add an effect costing 4 ms, you are at 12 ms. The same sum in frames per second — "125 FPS plus a 4 ms effect" — has no obvious answer.

Frame rate Frame time Saved vs the row above
30 FPS 33.33 ms
60 FPS 16.67 ms 16.67 ms
90 FPS 11.11 ms 5.56 ms
120 FPS 8.33 ms 2.78 ms
144 FPS 6.94 ms 1.39 ms
240 FPS 4.17 ms 2.78 ms

What do stability, pacing and jitter mean?

A practical target: 1% low above two thirds of your average, jitter under a tenth of your frame time. Hit both and nobody calls your machine stuttery.
Stability

Percentage of frames within 10% of the typical gap. Above 95% is a well behaved machine.

Pacing

How evenly frames are spread. High is good.

Jitter

Average change from one frame to the next, in ms. Under 1 ms is excellent — low is good here.

What does the pattern in the trace mean?

  • Flat with occasional single spikes. Normal. Garbage collection, a network request finishing. Nothing to fix.
  • Regular spikes at a steady interval. Something on a timer — an extension polling, a sync client.
  • A staircase that climbs and resets. Thermal. The machine warms up, slows, a fan kicks in, it recovers.
  • Two levels alternating. A frame rate limiter, or V-Sync missing a deadline and halving.
  • Constant noise, no pattern. Contention. Too much running at once.

How do I use the stress slider?

Not at maximum. Start at zero, let the baseline settle for ten seconds, then step up one preset at a time and watch where the frame rate first stops holding. That crossover tells you more about headroom than any single number.

Convert

Frame rate to frame time

The same fact stated two ways. Type in either box.

Common frame rates

At 60 FPS each frame gets 16.67 ms. Miss that budget and the frame turns up late.

Reading it

What should I look at?

  1. 1

    The height of the bars

    Each bar is one frame, the dashed line is your budget. Bars crossing it arrived late; red ones cost you a whole frame.

  2. 2

    The shape of the distribution

    One narrow spike is healthy. Two humps means something is alternating — often a rate limiter or a background process on a schedule.

  3. 3

    The gap to the 1% low

    Close to the average is smooth. Far below it means good frames are propping up a number that does not match what you feel.

FAQ

Common questions

What is a good frame time?

16.67 ms on a 60 Hz display, 8.33 ms on 120 Hz, 6.94 ms on 144 Hz. Consistency matters more than the figure — a steady 17 ms beats a mix of 12 and 30.

What is the difference between 1% low and minimum FPS?

The minimum is one single worst frame, which any hiccup can produce. The 1% low averages the worst 1% of all frames, so it describes a pattern rather than an accident.

My average is high but the 1% low is terrible.

You have a smooth run interrupted by regular bad frames. Look at the trace — evenly spaced spikes point at something on a timer, random ones at general contention.

Why is jitter in milliseconds and not a percentage?

Because the absolute size is what you notice. A 4 ms swing is invisible at 30 FPS and very visible at 240.

How long should I run it?

Thirty to sixty seconds for a meaningful 1% low. Ten is enough for an average only.

Keep going

Everything here runs in your browser, free, with no sign-up.

Look at the frames themselves

Run it for a minute and watch the trace instead of the number.

Open the checker