ToolNimba

๐ŸŽฎ FPS Counter, Measure Your Browser Frame Rate Live

Shihab Mia By Shihab Mia ยท Updated 2026-07-15

Current frame rate

0 FPS

Starting measurement...

Average

0

Minimum

0

Maximum

0

Frames

0

This measures how fast your browser repaints the page on this monitor, not the FPS inside a game. Keep this tab focused for an accurate reading, since browsers throttle background tabs.

This FPS counter measures the live frame rate of your browser on the screen you are reading this on, right now, with nothing to install. It counts every animation frame your browser paints over a rolling one second window and shows the current FPS as a big live number, alongside the running average, the lowest and highest values seen, and a best guess at your display refresh rate. On a healthy 60Hz screen you will see about 60 FPS, and on a 120Hz or 144Hz panel you should see the higher figure when your browser and drivers are set up to use it. Everything runs locally using requestAnimationFrame, so no data ever leaves your device.

What is the FPS Counter?

An FPS counter reports frames per second, which is how many times your browser is able to repaint the screen each second. Smooth motion on the web is capped by your monitor: a 60Hz panel can show at most 60 distinct frames per second, a 120Hz panel up to 120, and so on. This FPS counter does not guess at hardware specifications. Instead it asks the browser for the next animation frame again and again, records the exact timestamp of each one, and counts how many of those timestamps fall inside the last one thousand milliseconds. That count is your current FPS, updated several dozen times a second so the number feels genuinely live.

The heart of the measurement is requestAnimationFrame, a browser API designed to run a callback right before the next repaint. According to the MDN Web Docs reference, the number of callbacks is usually 60 times per second but generally matches the display refresh rate. Because the browser schedules that callback in step with the display, the rate at which your callback fires is the rate at which the screen is refreshing. By keeping a sliding window of the most recent frame timestamps and discarding anything older than one second, the FPS counter always reflects the last second of real activity rather than a stale snapshot. Each completed second is also recorded as a clean sample, which feeds the running average and the min and max readouts so you can see how stable your frame rate is over time, not just at this instant.

It helps to separate two ideas that people often mix up: frame rate and refresh rate. Frame rate, measured in FPS, is how many frames are actually produced and shown per second. Refresh rate, measured in hertz (Hz), is the fixed number of times per second your monitor can update. Your visible FPS can never exceed your refresh rate, so a graphics card pushing 200 FPS into a 60Hz screen still shows only 60 distinct frames. This FPS counter measures the frames that genuinely reach your eyes, which is why the reading tracks your Hz rather than any raw hardware maximum. That makes it a quick, honest way to confirm what your display is really doing.

It is equally important to understand what this FPS counter does and does not measure. It measures the refresh and repaint rate of your browser tab on your current monitor. It does not measure the frame rate inside a native game, a console, or a separate application, because a webpage has no visibility into other processes. If you are reading this on a 60Hz laptop you should expect a reading close to 60 FPS when the tab is active and unthrottled. If you have a 120Hz or 144Hz gaming display and your browser and graphics drivers are configured to use it, you should see the higher number. A reading well below your panel rate usually means the tab is busy, throttled in the background, or limited by battery saver and power settings.

The tool works the same way across desktops, laptops, tablets and phones because every modern browser exposes requestAnimationFrame. That is why a single FPS counter can check a 60Hz office monitor, a 90Hz or 120Hz flagship phone, and a 144Hz gaming rig without any device specific setup. Many phones ship with an adaptive or variable refresh mode that drops to 60Hz or lower to save battery, so running this frame rate test on mobile is a fast way to see whether your high refresh screen is actually engaged while you scroll and animate. If you enable a stress or load view, the extra rendering work also reveals how gracefully your device holds its frame rate under pressure, which is closer to real gaming or heavy web app conditions than an idle reading.

Real world frame rates wobble, and that is normal. Garbage collection pauses, a heavy script on another tab, an operating system notification, or simply moving a window can each drop a frame or two. This is exactly why the FPS counter surfaces an average, a minimum, and a maximum rather than a single figure. A healthy result is a current FPS that hugs your refresh rate, a min that only dips briefly, and an average within a frame or two of the panel maximum. Persistent low numbers, large gaps between min and max, or an average far under your display rate are the signals worth investigating, whether that means closing tabs, plugging in the laptop, turning off VSync style caps, or checking that hardware acceleration is switched on in your browser settings.

When to use it

  • Confirming whether your browser is actually using a 120Hz or 144Hz high refresh display or quietly capping at 60Hz.
  • Spotting frame drops and jank while a heavy web animation, canvas demo, or WebGL scene is running.
  • Checking that battery saver or background tab throttling is not silently halving your frame rate.
  • Comparing the smoothness of two browsers or two machines using the same simple, repeatable test.
  • Verifying that hardware acceleration is enabled after changing browser flags or graphics drivers.
  • Testing whether a phone or tablet is really running its 90Hz or 120Hz adaptive mode while scrolling.
  • Teaching how requestAnimationFrame and display refresh rates relate when learning front end animation.

How to use the FPS Counter

  1. Open the page and leave this tab focused; the FPS counter starts measuring automatically.
  2. Watch the big current number settle, then read the average, minimum and maximum below it.
  3. Check the detected refresh rate hint to see whether it matches your monitor, for example about 60Hz or 120Hz.
  4. Move a window or trigger an animation to watch how the frame rate responds under light load.
  5. Press Stop to freeze the numbers, or Reset to clear the history and start a fresh measurement.
  6. Press Copy result to put a one line summary of your frame rate on the clipboard.

Formula & method

currentFPS = number of animation frames recorded in the last 1000 ms (a rolling window). Each completed second is stored as a sample, so average = sum(samples) / count(samples), while min and max track the lowest and highest one second samples seen since the last reset. Frame time in ms = 1000 / FPS. Frame timestamps come from requestAnimationFrame, so the measured rate follows the display refresh rate.
FPS counter: frames counted in a one second rolling windowHow the FPS Counter WorksCount animation frames inside a rolling 1 second window0 ms1000 mseach dot is one requestAnimationFrame repaintcurrentFPS = frames in last second12 frames shown, near 60 in practiceAverage, min and max come from each completed one second sample

Worked examples

A standard 60Hz laptop with the tab focused and idle.

  1. requestAnimationFrame fires roughly once every 16.7 ms.
  2. Over a one second window the counter records about 60 timestamps.
  3. currentFPS reads close to 60, sample after sample.
  4. The average settles near 60 and the min stays close behind.

Result: The hint reads about 60Hz, confirming a normal 60Hz display running smoothly.

A 144Hz gaming monitor where a background tab is briefly stealing time.

  1. With the tab idle the counter reads close to 144 FPS.
  2. A heavy script elsewhere causes a short stall, so a few frames are skipped.
  3. During that second the rolling window holds fewer timestamps, so currentFPS dips, say to 118.
  4. That low second is captured as the new minimum while the average stays near 140.

Result: Average near 144 with a min of 118 shows a fast panel that took one short, recoverable hitch.

A phone advertised as 120Hz that reads only 60 FPS in the browser.

  1. You open the FPS counter and it settles at about 60 while scrolling.
  2. Battery saver is on, so the system has locked the display to its 60Hz power saving mode.
  3. You disable battery saver and force the high refresh setting, then reload the test.
  4. The counter now climbs to roughly 120 FPS with a matching refresh rate hint.

Result: The jump from 60 to 120 confirms the panel is capable of 120Hz and that power saving was the cap.

Common display refresh rates and the frame time they imply

Refresh rateTarget FPSTime per frameTypical use
60Hz60 FPS16.7 msMost laptops, office monitors, phones
75Hz75 FPS13.3 msBudget gaming and productivity panels
90Hz90 FPS11.1 msMany flagship phones and VR headsets
120Hz120 FPS8.3 msHigh end phones, tablets, gaming TVs
144Hz144 FPS6.9 msEntry level gaming monitors
240Hz240 FPS4.2 msCompetitive esports displays

How different frame rates feel in practice

Frame rateHow it feelsBest suited for
24 to 30 FPSCinematic but choppy in fast motionFilm, video, slow paced or story games
60 FPSSmooth and responsive, the common baselineMost gaming, general use, web animation
90 to 120 FPSNoticeably fluid, easier fast trackingFast action games, high refresh phones
144 FPSVery smooth with sharp motion clarityCompetitive shooters like CS2 or Valorant
240 FPS and upMarginal gains, prized by prosEsports and frame perfect play

Reading your FPS counter result

What you seeLikely meaningSuggested action
Steady reading near your panel rateBrowser is using your display correctlyNothing to do, all healthy
Capped at 60 on a 120Hz screenBrowser or OS is limiting refreshCheck display and browser refresh settings
Average well under the panel rateTab is busy or hardware acceleration is offClose tabs, enable acceleration
Large gap between min and maxIntermittent jank or GC pausesProfile heavy scripts, plug in the laptop
Drops to a low number when unfocusedBackground tab throttlingKeep the tab focused while testing

Common mistakes to avoid

  • Expecting in game FPS from a browser tool. This FPS counter measures how fast your browser repaints the page, not the frame rate inside a native game or console. A webpage cannot see other applications, so use your game overlay or graphics driver tool for in game numbers.
  • Confusing refresh rate with frame rate. Hertz is what your monitor can display, FPS is what is actually being drawn. Your visible FPS can never beat your refresh rate, so a 60Hz screen shows 60 FPS even if the hardware could render far more. Read the two together, not in isolation.
  • Testing with the tab in the background. Browsers deliberately throttle requestAnimationFrame in hidden or unfocused tabs to save power, often down to one frame per second or less. Always keep this tab focused and visible while you read the FPS, or the result will look far lower than reality.
  • Forgetting that battery saver caps frame rate. On laptops and phones, power saving modes frequently lock the display or the browser to 60Hz or even 30Hz to extend battery life. If your high refresh screen reads low, plug in the device and disable battery saver before retesting.
  • Ignoring a VSync style frame cap. Some browsers, drivers, or OS settings cap frames to the refresh rate or a fixed value to prevent tearing. If your reading sits at a suspiciously round ceiling like 60 on a 144Hz panel, look for a refresh or vertical sync cap in your graphics control panel.
  • Reading too much into a single second. One brief dip does not mean your hardware is slow. Garbage collection, a notification, or window movement can each cost a frame. Watch the running average over several seconds rather than reacting to one low instant.

Glossary

FPS
Frames per second, the number of distinct images drawn to the screen each second. Higher FPS looks smoother.
Refresh rate
How many times per second a display updates, measured in hertz. A 60Hz screen can show at most 60 FPS.
Hertz (Hz)
The unit for refresh rate. 120Hz means the monitor can redraw its image 120 times every second.
requestAnimationFrame
A browser API that runs a callback right before the next repaint, in step with the display refresh rate.
Rolling window
A moving time span, here one second, over which recent frames are counted so the FPS number stays current.
Frame time
The milliseconds between two frames. It is the inverse of FPS, so 60 FPS means about 16.7 ms per frame.
Throttling
When a browser deliberately slows timers and animation frames, usually for hidden tabs or power saving.
Hardware acceleration
Offloading rendering to the GPU so the browser can paint faster and hit higher frame rates.
VSync
Vertical sync, which locks frame output to the refresh rate to stop screen tearing, sometimes capping FPS.

Frequently asked questions

How does this FPS counter measure frame rate?

It uses requestAnimationFrame to run a callback before every browser repaint, records the timestamp of each frame, and counts how many fall within the last one second. That count is your current FPS, and it follows your display refresh rate because the browser schedules frames in step with the screen.

What is the difference between FPS and refresh rate?

FPS is how many frames are actually drawn per second, while refresh rate in hertz is how many times your monitor can update per second. Your visible FPS can never exceed your refresh rate, so a 60Hz screen shows at most 60 FPS no matter how powerful the hardware is.

Does it measure my game FPS?

No. This tool only measures the frame rate of your browser tab on your current monitor. It cannot see inside a native game, console, or separate app. For in game frame rates, use your graphics driver overlay or a dedicated game capture tool instead.

Why is my FPS stuck at 60 on a 120Hz or 144Hz monitor?

Usually the browser or operating system is capping refresh. Check that your display is set to its high refresh mode, that your browser is allowed to use it, and that hardware acceleration is on. Battery saver, some power plans, and a VSync cap can also lock the panel to 60Hz.

Why does the number drop when I switch tabs?

Browsers throttle requestAnimationFrame in hidden or unfocused tabs to save battery, often to a single frame per second. That is expected behaviour. Keep this tab focused and visible for an accurate reading, and the FPS will recover immediately.

What is a good FPS result?

A healthy result sits close to your monitor refresh rate, so about 60 on a 60Hz screen or about 120 on a 120Hz screen, with a steady average and only brief dips. For gaming, 60 FPS is a smooth baseline while 144 FPS is preferred for competitive play. Numbers far below your panel rate suggest throttling, a busy tab, or disabled hardware acceleration.

Can I run this FPS counter on my phone?

Yes. Every modern mobile browser supports requestAnimationFrame, so the test works on phones and tablets. It is a quick way to check whether a 90Hz or 120Hz phone is really using its high refresh mode or has dropped to 60Hz to save battery.

Is 30 FPS or 60 FPS noticeably different?

Yes, most people clearly notice the jump. At 60 FPS each frame lasts about 16.7 ms versus about 33.3 ms at 30 FPS, so motion looks twice as smooth and input feels more responsive. The difference is most obvious in fast panning, scrolling, and action.

How can I increase my browser frame rate?

Enable hardware acceleration in your browser settings, close heavy background tabs, plug in the laptop and turn off battery saver, set your display to its highest refresh mode, and update your graphics drivers. Then rerun this FPS counter to confirm the improvement.

Is my data sent anywhere?

No. The entire FPS counter runs locally in your browser with plain JavaScript and the requestAnimationFrame API. Nothing about your device, screen, or performance is uploaded, which makes it completely private and free to use as often as you like.