FPS Test

Measure your browser's frame rate and frame pacing.

Run a lightweight 10-second test to see how frequently this browser tab receives animation callbacks. Review average FPS, 1% lows and frame intervals without starting a GPU stress workload.

This is a browser timing test, not a game benchmark or a direct measurement of your monitor's refresh rate.

Local calculations · No account · No download

Ready to test

Average FPS

— FPS

Current FPS

— FPS

Median frame time

— ms

1% Low FPS

— FPS

0.0 / 10 s · 0 intervals

Frame interval over time

— ms

0 s · 0 ms10.00 s
Metric definitions

Current FPS: Animation intervals counted over the latest short time window; complete intervals are used.

Average FPS: 1,000 × interval count / total elapsed milliseconds; not an arithmetic mean of instantaneous FPS.

1% Low FPS: 1,000 divided by the mean duration of the slowest ceil(N × 0.01) intervals. At least 100 intervals are required.

Median frame time: The middle animation interval (linear interpolation). This is not GPU execution time.

P95 interval: 95th percentile with linear interpolation at (N − 1) × 0.95.

P99 interval: 99th percentile with linear interpolation at (N − 1) × 0.99; 1,000/P99 is not this test’s 1% Low.

Slow intervals: Intervals strictly longer than 1.5× the median; not a count of dropped display frames.

Typical callback cadence: 1,000 / median interval: typical callback rhythm, not a verified display specification.

Use the intended display, keep the window size and power settings fixed, and avoid scrolling during measurement. Fullscreen does not bypass browser scheduling. Calculations run locally. This tool does not upload measurement reports. Site-wide analytics follow the privacy policy.

Compare frame rates

Compare lower animation update rates with this browser's current cadence. Your browser and display can limit what you see.

30 updates/s requested
Observed updates/s: —

60 updates/s requested
Observed updates/s: —

120 updates/s requested
Observed updates/s: —

Browser cadence
Observed updates/s: —

These are animation update counts, not confirmed display frames. All tracks move at the same speed. Non-divisible rates can produce uneven scheduling. Playback starts only when you choose it.

How to run an FPS test

1. Choose your test conditions. Open this page on the display you want to check. Keep the same browser, window size and power settings when comparing runs. Close unnecessary animated pages or demanding applications.

2. Select Start FPS test. The page warms up the animation loop for about one second, then collects at least ten seconds of complete frame intervals.

Keep the tab visible and avoid moving the window between displays. Changing viewport size, DPR, orientation or fullscreen interrupts the run.

3. Read the average and the intervals. Average FPS describes the overall callback rate. The frame-time chart and 1% low reveal variation an average can hide. Repeat before treating small differences as meaningful.

FPS, frame time and refresh rate

FPS means frames per second. Here it is an estimate derived from browser animation callbacks. Frame time is the interval between those callbacks in milliseconds.

Refresh rate in hertz describes display refresh cycles. Browser animation often follows the display cadence, but the operating system and browser scheduling can limit or change it.

A callback is not proof that a new frame was physically presented. This page cannot verify your monitor’s maximum refresh rate.

For perfectly even timing: frame interval = 1,000 / FPS. The following values are mathematical examples, not measurements.

Mathematical examples, not detected display settings
FPSFrame interval (ms)
3033.33
6016.67
1208.33
1446.94
1656.06
2404.17

Why is my FPS around 60?

A result near 60 FPS does not automatically indicate a fault. It describes what this tab observed under the current conditions.

Check your operating system’s refresh setting, confirm the browser is on the intended display, and review power-saving settings. For external displays, check the connection and selected display mode.

Background applications, extensions and browser-specific scheduling can affect a run. Compare repeated measurements under identical conditions before assigning a cause.

This page cannot unlock a higher refresh rate, identify a faulty cable or determine hardware acceleration from FPS alone.

Need more evidence about the graphics path? Open the hardware acceleration check.

How this FPS test works

The test requests requestAnimationFrame callbacks while drawing a small 640×160 Canvas 2D scene at fixed internal DPR 1. Warm-up is excluded. Reduced-motion preference uses a static marker with the same timing measurement.

Average FPS = 1,000 × interval count / measured milliseconds. Quantiles use linear interpolation at (N − 1) × p. 1% Low = 1,000 / mean of the longest ceil(N × 0.01) intervals, not 1,000/P99.

P95, P99 and 1% Low require 100 intervals; fewer than five tail samples carry a warning. Slow intervals are strictly above 1.5× the median. Visible stalls remain in the data; gaps over 2,000 ms or hidden tabs interrupt the run.

The last complete interval crossing ten seconds is retained. Chart buckets preserve minima and maxima at real end times; statistics use all raw intervals. No temperature, hardware-health score or game FPS prediction is produced. Protocol: fps-raf-v1.

Related graphics tests

GPU Stress Test

Apply a sustained WebGL workload and examine performance under load.

GPU Stability Test

Look for changes across a longer, controlled browser workload.

WebGPU Test

Check whether the browser can complete basic WebGPU verification tasks.

WebGL Test

Check browser-exposed WebGL capabilities and basic rendering behavior.

FPS test FAQ

What does this FPS test measure?

It measures animation callback timing in this tab during a light drawing task, not confirmed frames presented by the display.

Is this the same as my FPS in a game?

No. Games use different workloads and rendering systems. Use a game's frame counter or a suitable desktop tool.

Can it detect my monitor's exact refresh rate?

No. Callback timing may align with a display setting, but cannot verify the exact or maximum supported refresh rate.

What is a good FPS result?

There is no universal pass score. Compare repeated runs with matching conditions. A higher value alone does not prove a better GPU.

What does 1% low FPS mean here?

The slowest 1% of intervals are averaged, then converted to FPS as 1,000/mean. Definitions differ across tools; compare matching methods.

Why are average and 1% low very different?

A few long intervals can lower 1% Low while leaving the average high. Inspect the chart and repeat; this does not identify a hardware fault.

Why does the test stop when I switch tabs?

Hidden pages may have paused or throttled animation callbacks. Continuing would mix different conditions, so start a fresh run.

Why can't I see a true 120 FPS comparison?

The demonstration cannot update faster than received callbacks. A 120 updates/s target does not create 120 visible updates when callbacks arrive less often.

Does this test require WebGPU?

No. It uses animation timing and Canvas 2D; neither WebGPU nor WebGL is required.

Are results uploaded?

Reports are calculated locally and are not uploaded. You can copy, download or save them in local history. Site-wide analytics are governed by the privacy policy.

Local / No account

Reports & comparison

Up to 20 reports, stored only in this browser. A pinned baseline is retained. Imported reports are unverified external data.

Imported report text is shown in its original language.

Local history (0/20) · Select two to compare

No saved reports yet. Run a test or import a report.