FPS Counter
Use this FPS counter to measure how smoothly your browser is rendering the current page. It samples frames with requestAnimationFrame, reports current, average, minimum and maximum FPS, and can draw a short graph so you can spot dips caused by heavy tabs, animations, extensions, throttling or display settings.
How to measure browser FPS
-
1
Choose the sample length
Five seconds is a good default. Use a longer sample when you want to catch periodic stutters or background load changes.
-
2
Set smoothing and the warning threshold
The smoothing window averages recent frames, while the threshold marks the FPS level you consider acceptable for the test device.
-
3
Run the counter and read the spread
Current FPS shows recent rendering speed. Average, low and high values reveal whether the session was consistently smooth or had visible dips.
What the FPS counter measures
This tool measures browser rendering cadence, not graphics-card benchmark performance. Every time the browser is ready to paint another frame, requestAnimationFrame calls the sampler. The time between two callbacks gives an instantaneous frame rate:
FPS = 1000 / frame_time_in_ms
The displayed current FPS is a moving average over the smoothing window. A window of 60 frames works well for normal 60 Hz displays because it calms one-frame spikes without hiding sustained drops. Smaller windows react faster; larger windows look steadier.
Worked example
Suppose a five-second sample records these simplified frame intervals:
| Frame interval | Instant FPS | What it suggests |
|---|---|---|
| 16.7 ms | 59.9 FPS | Typical 60 Hz rendering |
| 8.3 ms | 120.5 FPS | Typical 120 Hz rendering |
| 25.0 ms | 40.0 FPS | A visible slowdown on many displays |
| 33.3 ms | 30.0 FPS | Heavy work or throttling |
If your warning threshold is 50 FPS and the measured moving average ends at 47 FPS, the result is below target even if a few frames were faster. If it ends near 60 FPS with occasional dips to 45 FPS, the average is healthy but the minimum tells you there were stutters worth investigating.
Interpreting the results
| Result pattern | Likely meaning | Next check |
|---|---|---|
| Average near refresh rate, low dips rare | Rendering is healthy | Compare with another browser only if needed |
| Average good, low value much lower | Periodic stutter | Close heavy tabs or inspect animations |
| Average below threshold | Sustained render load | Check CPU load, extensions and page scripts |
| FPS capped near 30 | Power saving or throttling | Check battery mode and display settings |
Browser FPS is influenced by the display refresh rate, operating-system compositor, battery mode, thermal throttling, active tabs and the page itself. Run the test on a quiet tab first, then repeat while the page or app you are diagnosing is active.
Frequently Asked Questions
No. This counter measures how often the browser receives requestAnimationFrame callbacks. It is useful for web animation and page smoothness checks, but it is not a full GPU benchmark for native games.
Most browsers align animation frames with the display refresh rate. A 60 Hz monitor usually reports near 60 FPS, while 120 Hz or 144 Hz displays can report higher values when the browser and operating system allow it.
Use 50 FPS for a normal 60 Hz smoothness check. For high-refresh monitors, set the threshold closer to the experience you expect, such as 90 FPS or 120 FPS.
No. The measurement runs in your browser using local timing APIs. The tool does not upload frame data, screenshots or device details to an external API.
Related Tools
Color Palette Generator
Generate monochromatic, analogous, complementary, triadic or tetradic color palettes from a base HEX color and export copy-ready CSS variables.
HEX Color Picker
Pick any colour visually and get its HEX, RGB, HSL, HSV and CMYK values, plus accessibility contrast against white and black.
Random Color Palette Generator
Generate random color palettes from 2 to 15 swatches, choose a vibrant, pastel, muted or dark style, then copy HEX codes or CSS variables.
BBCode to HTML Converter
Convert BBCode (bulletin-board markup) to clean HTML. Handles formatting tags, lists, quotes, code, images, links and tables.
JSON Formatter
Paste JSON to pretty-print with 2 or 4 spaces, minify it to compact output, or run a quick syntax check before copying the result.
ASCII to Binary Converter
Convert any ASCII string to its binary representation. Every character becomes eight bits, space-separated, ready to paste into a protocol trace or homework.