Device Bench

Device test · Display

FPS / Frame Rate Test

Watch how often, and how evenly, your browser draws a frame.

Measured FPS— Samples— Jitter— Interval range— Dropped— Statusidle

Watch the bar's edge for smooth motion or visible steps. Its brightness stays constant; it does not flash. This is a visual check, separate from the timing measurement.

Keep this tab in front. Press Start measuring and wait for a Hz reading, then press Stop when you want to keep it. Browsers slow or pause background animation, so the test stops if the tab is hidden. Return here and start a new run to measure again.

Verdict

NOT RUN

—

Press Start measuring and let it run for a few seconds to check it. A dropped frame is an interval more than three times the measured median.

Published thresholds, as a percent of this run's sampled frames, rounded to the nearest percent: 0 is PASS. 1–2 is CHECK SETTINGS — background work on the machine can cause this without a fault. 3 or more is LIKELY FAULT. Full reasoning in the methodology.

If it's flagged

    How this test works

    The test times the gaps between requestAnimationFrame callbacks, the browser's signals that an animation can update. It skips the first quarter-second while the loop settles, then keeps a rolling set of up to six hundred positive frame intervals. A Hz reading appears after at least 120 samples; the run continues until you press Stop or hide the tab. The reported rate is one divided by the median interval in seconds, rounded to one decimal place. The median is the middle of the sorted intervals, so one long pause, such as a garbage-collection stall, barely moves it; an average would let that single frame pull the rate down.

    Jitter here is the absolute difference between the mean and median intervals, in milliseconds. Stalled frames push the mean away from the median, so a large gap means uneven delivery, and the range shows how far apart the shortest and longest intervals are. When you stop, intervals longer than three times the median are counted as stalls, and they stay in the median, mean and range calculations.

    No web page can read a display's refresh rate directly; there is no browser API for it. The reading is the browser's frame delivery, which normally follows the display because browsers draw in step with it. Treat a low reading as a reason to check the operating system's display settings, the browser and the connection (the last question below covers each) before you suspect the monitor.

    Frequently asked questions

    Is this measuring my monitor or my browser?
    Your browser, which in the ordinary case gives you your monitor's rate. The test times how often the browser hands this page an animation frame, and browsers normally deliver frames in step with the display. The two differ when power saving, battery use or other work on the machine slows the browser, when the tab is hidden, or when a variable-refresh panel changes its rate during the run.
    Why does it say 59.9 Hz instead of 60?
    Because that is what was measured, to one decimal place. Many displays sold as 60 Hz run at 59.94 Hz, a rate inherited from broadcast television, and browser timer resolution and scheduling shift the reading a little more. When the result is close to a common panel rate, the note under the readout names the rate it is consistent with, so you see the measured number and the standard rate side by side.
    What do the jitter and range figures mean?
    Jitter is the absolute gap between the average and median frame intervals, in milliseconds. Range is the shortest and longest interval in the sample set. A narrow range with little jitter means the browser delivered frames evenly; a wide range means something interrupted them, such as other work on the machine. Check the range as well as the jitter, because the mean and median can match even when the intervals vary.
    Why did it stop when I switched tabs?
    Because browsers slow or pause animation frames in background tabs to save power, and a reading taken there would measure that throttling. The test stops as soon as the browser reports this tab hidden. Return to this tab and press Start measuring for a new run. A video or a demanding page running elsewhere can also lower the reading while this tab stays visible.
    Can this check my high-refresh-rate monitor's setup?
    Yes, for the useful half: it shows whether the browser is getting the higher rate. If a 144 Hz monitor reads a steady 60 Hz here, the higher rate is most likely not selected, so check the refresh rate in your operating system's display settings and that the cable and port support the rate you want. Browser frame-rate limits or power-saving settings can pull it down as well. The test cannot show whether the panel supports a rate the browser is not getting, or tell variable refresh apart from uneven browser timing.

    Related tools