WOOFY · Play lab

Same FPS, different frame pacing

An FPS counter summarizes a rate. It does not tell you when each frame arrives. Use these deliberately simple sequences to learn which questions a summary can answer—and which need the timeline.

Change the question you ask of the same data

Why two FPS numbers cannot always be averaged

Imagine two complete intervals: 10 ms and 30 ms. Together they occupy 40 ms. Count both intervals over that total time.

The overall rate is 1,000 × 2 ÷ 40 = 50 FPS. The 10 ms interval has a reciprocal rate of 100 FPS and the 30 ms interval about 33.33 FPS.

Averaging 100 and 33.33 gives about 66.67, which is not the overall rate. The slow interval occupies three times as much time. Keep interval counts and total duration together; the same trap appears when combining recordings of different lengths.

Three sequences, the same total time

Each sequence contains 1,000 complete frame intervals totaling 10,000 ms. An interval is the time between consecutive frame events. Here, average FPS = 1,000 × interval count ÷ total milliseconds. These are synthetic intervals, with no capture boundaries or missing records.

Horizontal position is interval order, not elapsed time. Vertical height is duration, from 0 to 120 ms. The text and numbers below describe the same data.

Even spacing

Every interval is 10 ms. No interval exceeds the 60 FPS reference budget of about 16.67 ms.

Average FPS
100
P99 interval (ms)
10
Longest interval (ms)
10
Intervals above budget
0
Share of intervals above budget (%)
0
Share of total time in those intervals (%)
0
Longest consecutive group above budget
0
Reference budget (ms)
16.67

Ten separated gaps

Every hundredth interval is 109 ms; the other 990 are 9 ms. The gaps are separated. The average remains 100 FPS, but P99 is only 9 ms.

Average FPS
100
P99 interval (ms)
9
Longest interval (ms)
109
Intervals above budget
10
Share of intervals above budget (%)
1
Share of total time in those intervals (%)
10.9
Longest consecutive group above budget
1
Reference budget (ms)
16.67

Ten gaps together

The same ten 109 ms intervals now occur consecutively at the end. Summary values stay the same as the separated sequence, while the longest consecutive group above the reference budget grows from one to ten.

Average FPS
100
P99 interval (ms)
9
Longest interval (ms)
109
Intervals above budget
10
Share of intervals above budget (%)
1
Share of total time in those intervals (%)
10.9
Longest consecutive group above budget
10
Reference budget (ms)
16.67

Why P99 can miss the longest gaps

This lab sorts intervals from shortest to longest and takes position ceil(0.99 × N), counting from one. With 1,000 intervals that is position 990. In both uneven sequences, the first 990 values are 9 ms; all ten 109 ms gaps sit beyond that position. A lower P99 here does not prove a steadier experience. Other tools may use different percentile methods.

P99 is not a universal “1% low FPS”

A percentile boundary and an average of the slowest intervals are different calculations. The label “1% low” is not enough to identify a formula. Check the tool's definition, capture metric and version before comparing results. This lab reports milliseconds at P99 and does not label its reciprocal as 1% low.

Change the question you ask of the same data

Choose a sequence and a reference rate. A budget of 1,000 ÷ reference FPS gives 33.33 ms at 30, 16.67 ms at 60 and 8.33 ms at 120. Changing it reclassifies intervals; it does not change the sequence or simulate an FPS limiter.

The three examples above use the 60 FPS reference. Their data, explanations and method remain readable without the interactive controls.

Only intervals strictly longer than the reference budget are counted. Equality is within budget.

Time share adds the full duration of each counted interval, not just its excess over budget. It is not a stutter score or a measure of input latency. A consecutive group describes adjacent intervals, not a proven perceptible stutter event.

Turn a settings change into a fair comparison

Use your capture tool for real measurements. This lab does not read your hardware or import capture files. Record the following before deciding that a setting helped.

  1. Define one question

    For example: does changing one graphics setting reduce repeated long intervals on the same route? Keep the game version, scene, resolution, frame cap, synchronization and other settings fixed. Record any exception.

  2. Capture comparable runs

    Warm up consistently and use the same route and recording duration. Repeat each condition and alternate their order where practical. Keep first-run loading or shader work separate from a warmed-up test; do not delete inconvenient spikes without documenting why.

  3. Read summaries alongside the timeline

    Compare average rate, tail values, maximum interval and where the long intervals occur. If repeated runs overlap substantially, report the result as unclear instead of choosing the best run. An unchanged average can coexist with a useful change in pacing.

  4. State the scope of your conclusion

    Write the changed setting, fixed conditions, repeated-run results and remaining uncertainty. Application-present intervals, displayed frames and generated frames can differ. Compare the same metric; do not infer input latency or a CPU/GPU fault from these numbers alone.

From a results table to a defensible conclusion

Each case asks a different question: did an advantage repeat, did the chosen metric improve, and were the recordings combined correctly? Read the observations before deciding what they support.

All recordings below are constructed teaching data made from complete intervals, not real benchmark captures. A and B are labels, not recommended settings. The examples do not establish a minimum number of repeats or a statistical significance rule.

The best recording suggests a winner; the full set does not

In this constructed example, A and B alternate over the same route for 60 seconds each, with the same capture metric, warm-up, resolution and other conditions. The question is whether B shows a repeatable average-rate advantage in these three pairs.

Repeat pairA · Average FPSB · Average FPSB minus A (FPS)
11001033
210299-3
31011010

A

Overall FPS across the complete duration
101
Lowest recording average FPS
100
Highest recording average FPS
102

B

Overall FPS across the complete duration
101
Lowest recording average FPS
99
Highest recording average FPS
103

Selecting only the highest result gives A 102 and B 103 FPS. Keeping all equal-duration recordings gives both 101 FPS overall. The paired differences are +3, −3 and 0 FPS: the direction changes.

What you can conclude

This set does not show a consistent average-FPS advantage for B. It also does not prove that the settings are equivalent; a small constructed sample cannot settle that claim.

What to check next

Repeat comparable observations and inspect the differences alongside the capture conditions. Keep all valid recordings and document exclusions. If repeat order or background work could explain a result, improve the comparison before choosing a winner.

Boundary of the conclusion

Overlap between ranges is a description, not a significance test. A single best recording and a fixed repeat count are not universal decision rules.

The average improves while a long-interval measure worsens

Both constructed recordings last ten seconds. A contains 980 intervals of 10 ms and ten of 20 ms. B contains 1,180 intervals of 8 ms and twenty of 28 ms. Use the same 60 FPS reference, about 16.67 ms, for both.

A

Duration (s)
10
Complete intervals
990
Average FPS
99
Intervals above the 60 FPS reference
10
Share of time in those intervals (%)
2

B

Duration (s)
10
Complete intervals
1,200
Average FPS
120
Intervals above the 60 FPS reference
20
Share of time in those intervals (%)
5.6

A totals 990 intervals and B 1,200: 99 versus 120 FPS. The counted intervals occupy 200 ms in A and 560 ms in B, or 2% versus 5.6% of total time. These percentages describe time, not the fraction of intervals.

What you can conclude

B has the higher average rate in this example, but more time lies in intervals above the chosen reference. The numbers support a tradeoff, not an overall smoothness winner.

What to check next

State whether your real question concerns average rate, repeated long gaps or another measured outcome. Compare repeated recordings of the same scene and inspect where the gaps occur before keeping the setting.

Boundary of the conclusion

One A/B pair does not establish a repeatable effect. The threshold is a chosen reference; this example measures neither perception nor input delay and does not identify the cause of a gap.

Unequal recording lengths can reverse a naive ranking

A combines ten seconds at 120 FPS with ninety seconds at 60 FPS. B combines two fifty-second recordings at 80 FPS. Each label therefore covers 100 seconds. A's recording lengths differ, while B's are equal.

RecordingDuration (s)Complete intervalsAverage FPS
A1101,200120
B1504,00080
A2905,40060
B2504,00080

A

Overall FPS across the complete duration
66
Arithmetic mean of recording FPS values
90

B

Overall FPS across the complete duration
80
Arithmetic mean of recording FPS values
80

A contains 1,200 + 5,400 = 6,600 intervals: 66 FPS over 100 seconds. B contains 4,000 + 4,000 = 8,000: 80 FPS. Averaging A's two displayed FPS values gives 90, which incorrectly places it above B if presented as overall throughput.

What you can conclude

Across the complete durations, the constructed data gives A 66 and B 80 FPS. The 90 FPS shortcut gives equal weight to recordings of very different lengths.

What to check next

When your question is overall throughput, combine interval counts and durations. When comparing setting effects, also match the scene composition, warm-up and capture metric; correct arithmetic cannot repair mismatched conditions.

Boundary of the conclusion

A mean of per-recording FPS answers a different question and is not inherently invalid. It must not be relabeled as the overall rate. These aggregate values alone do not show that B caused an improvement.

Change the summary, keep the recordings

Use the same constructed data to compare a full-duration calculation with the shortcut discussed in each case. Only the summary changes. The recordings and their conditions do not.

A useful conclusion can include uncertainty

“The two examples both average 100 FPS, but their interval patterns differ” follows from this data. “This PC will feel smooth” does not. For your own runs, keep the settings only after checking repeated comparable measurements and the experience you wanted to improve.

What this exercise cannot tell you

These sequences illustrate arithmetic, not human perception. They exclude display refresh behavior, variable refresh rate, frame generation, input delay, network delay and the cause of a long interval. The reference budget is a chosen comparison line, not a universal good/bad threshold. No game, hardware purchase or repair is recommended from these examples.