WOOFY · 플레이 실험실
같은 FPS, 다른 프레임 간격
FPS 표시기는 초당 빈도를 요약합니다. 각 프레임이 언제 도착하는지는 알려 주지 않습니다. 의도적으로 단순하게 만든 간격 패턴으로 요약값이 답할 수 있는 질문과 시간 순서를 봐야 하는 질문을 구분해 보세요.
같은 데이터에 다른 질문하기두 FPS 값을 항상 단순 평균낼 수는 없는 이유
10 ms와 30 ms인 두 개의 완전한 간격을 생각해 보세요. 합계는 40 ms입니다. 이 전체 시간 동안의 두 간격을 세어야 합니다.
전체 처리율은 1000 × 2 ÷ 40 = 50 FPS입니다. 10 ms 간격의 역수에 해당하는 처리율은 100 FPS, 30 ms 간격은 약 33.33 FPS입니다.
100과 33.33을 평균내면 약 66.67이지만 전체 처리율은 아닙니다. 느린 간격이 차지하는 시간은 세 배입니다. 간격 수와 총시간을 함께 보세요. 길이가 다른 기록을 합칠 때도 같은 함정이 생깁니다.
세 가지 간격 패턴, 같은 총시간
각 간격 패턴은 완전한 프레임 간격 1,000개로 구성되며 총시간은 10,000 ms입니다. 간격은 연속된 프레임 이벤트 사이의 시간입니다. 여기서 평균 FPS = 1,000 × 간격 수 ÷ 총 밀리초입니다. 측정 시작·종료 경계나 누락 기록이 없는 합성 간격입니다.
가로 위치는 경과 시간이 아니라 간격의 순서입니다. 세로 높이는 0~120 ms 범위의 지속 시간입니다. 아래 설명과 숫자도 같은 데이터를 나타냅니다.
고른 간격
모든 간격이 10 ms입니다. 60 FPS 기준 시간인 약 16.67 ms를 넘는 간격이 없습니다.
- 평균 FPS
- 100
- P99 간격(ms)
- 10
- 최장 간격(ms)
- 10
- 기준 시간을 넘는 간격 수
- 0
- 기준 시간을 넘는 간격의 비율(%)
- 0
- 해당 간격이 차지하는 총시간의 비율(%)
- 0
- 기준 시간을 넘는 간격의 최장 연속 개수
- 0
- 기준 시간(ms)
- 16.67
떨어져 있는 열 개의 긴 간격
매 백 번째 간격은 109 ms이고, 나머지 990개는 9 ms입니다. 긴 간격이 서로 떨어져 있습니다. 평균은 여전히 100 FPS지만 P99는 9 ms에 불과합니다.
- 평균 FPS
- 100
- P99 간격(ms)
- 9
- 최장 간격(ms)
- 109
- 기준 시간을 넘는 간격 수
- 10
- 기준 시간을 넘는 간격의 비율(%)
- 1
- 해당 간격이 차지하는 총시간의 비율(%)
- 10.9
- 기준 시간을 넘는 간격의 최장 연속 개수
- 1
- 기준 시간(ms)
- 16.67
몰려 있는 열 개의 긴 간격
같은 109 ms 간격 열 개를 이번에는 끝에 연속해서 배치했습니다. 요약값은 긴 간격이 떨어진 간격 패턴과 같지만, 기준 시간을 넘는 간격의 최장 연속 개수는 하나에서 열 개로 늘어납니다.
- 평균 FPS
- 100
- P99 간격(ms)
- 9
- 최장 간격(ms)
- 109
- 기준 시간을 넘는 간격 수
- 10
- 기준 시간을 넘는 간격의 비율(%)
- 1
- 해당 간격이 차지하는 총시간의 비율(%)
- 10.9
- 기준 시간을 넘는 간격의 최장 연속 개수
- 10
- 기준 시간(ms)
- 16.67
P99가 가장 긴 간격을 놓칠 수 있는 이유
이 실험실에서는 간격을 짧은 순으로 정렬하고, 하나부터 세어 ceil(0.99 × N)번째 값을 선택합니다. ceil은 소수 부분이 있으면 올림하고 정수는 그대로 두는 계산입니다. 간격이 1,000개이면 990번째입니다. 불규칙한 두 간격 패턴 모두 앞의 990개는 9 ms이고, 109 ms 간격 열 개는 모두 그 뒤에 있습니다. 여기서는 P99가 작다고 더 일정한 경험이라고 결론 내릴 수 없습니다. 다른 도구는 다른 백분위수 계산법을 사용할 수 있습니다.
P99는 모든 도구에서 통하는 ‘1% low FPS’가 아닙니다
백분위수의 경계값과 가장 느린 간격들의 평균은 서로 다른 계산입니다. ‘1% low’라는 이름만으로는 공식을 알 수 없습니다. 결과를 비교하기 전에 도구의 정의, 측정 지표, 버전을 확인하세요. 이 실험실은 P99를 밀리초로 표시하며 그 역수를 1% low라고 부르지 않습니다.
같은 데이터에 다른 질문하기
간격 패턴과 기준 FPS를 고르세요. 기준 시간 1,000 ÷ 기준 FPS는 30일 때 33.33 ms, 60일 때 16.67 ms, 120일 때 8.33 ms입니다. 기준을 바꾸면 간격의 분류만 달라집니다. 간격 패턴을 바꾸거나 FPS 제한기를 모의 실행하지 않습니다.
위의 세 예시는 60 FPS를 기준으로 합니다. 상호작용 기능 없이도 데이터, 설명, 계산 방법을 읽을 수 있습니다.
목록에 있는 간격 패턴과 기준 FPS를 고른 뒤 다시 시도하세요.
선택한 조건의 비교
떨어져 있는 열 개의 긴 간격 · 60 FPS
- 평균 FPS
- 100
- P99 간격(ms)
- 9
- 최장 간격(ms)
- 109
- 기준 시간을 넘는 간격 수
- 10
- 기준 시간을 넘는 간격의 비율(%)
- 1
- 해당 간격이 차지하는 총시간의 비율(%)
- 10.9
- 기준 시간을 넘는 간격의 최장 연속 개수
- 1
- 기준 시간(ms)
- 16.67
기준 시간을 초과하는 간격만 셉니다. 기준과 같으면 기준 이내입니다.
시간 비율은 집계된 각 간격의 전체 길이를 더합니다. 기준 초과분만 더하는 것이 아닙니다. 끊김 점수나 입력 지연 측정값이 아닙니다. 연속 개수는 이웃한 간격을 나타내며, 실제로 느껴지는 끊김이 발생했다고 입증하지 않습니다.
설정 변경을 공정하게 비교하는 방법
실제 측정에는 측정 도구를 사용하세요. 이 실험실은 하드웨어를 읽거나 측정 파일을 가져오지 않습니다. 설정 변경이 도움이 됐다고 판단하기 전에 다음을 기록하세요.
질문 하나 정하기
예를 들어 같은 경로에서 그래픽 설정 하나를 바꾸면 반복되는 긴 간격이 줄어드는지 살펴보세요. 게임 버전, 장면, 해상도, 프레임 제한, 동기화, 나머지 설정은 유지하세요. 예외가 있으면 기록하세요.
비교 가능한 기록 얻기
같은 방식으로 워밍업하고 같은 경로와 기록 길이를 사용하세요. 각 조건을 반복하고 가능하면 순서를 번갈아 바꾸세요. 첫 실행의 로딩이나 셰이더 작업은 워밍업 후 측정과 구분하고, 결론에 맞지 않는 스파이크를 이유 기록 없이 지우지 마세요.
요약값과 시간 순서 함께 읽기
평균 빈도, 분포 끝부분의 값, 최장 간격, 긴 간격이 발생하는 위치를 비교하세요. 반복 기록의 범위가 크게 겹치면 가장 좋은 기록만 고르지 말고 결과가 불분명하다고 적으세요. 평균이 그대로여도 프레임 간격에는 유용한 변화가 있을 수 있습니다.
결론의 적용 범위 밝히기
바꾼 설정, 고정한 조건, 반복 측정 결과, 남은 불확실성을 적으세요. 애플리케이션의 프레임 제출 간격, 표시된 프레임, 생성된 프레임은 서로 다를 수 있습니다. 같은 지표끼리 비교하고, 이 숫자만으로 입력 지연이나 CPU/GPU 고장을 추론하지 마세요.
결과표에서 근거 있는 결론으로
각 사례는 다른 질문을 다룹니다. 우세가 반복됐는가, 선택한 지표가 개선됐는가, 기록을 올바르게 합쳤는가? 무엇을 뒷받침하는지 판단하기 전에 관측값을 읽어 보세요.
아래 기록은 모두 완전한 간격으로 구성한 학습용 데이터이며 실제 벤치마크 측정이 아닙니다. A와 B는 권장 설정이 아닌 구분 이름입니다. 예시가 최소 반복 횟수나 통계적 유의성 기준을 정해 주지는 않습니다.
최고 기록은 우열을 암시하지만 전체 기록은 그렇지 않습니다
이 학습용 예시에서는 같은 경로에서 A와 B를 번갈아 각각 60초씩 기록하며, 측정 지표·워밍업·해상도·기타 조건도 같습니다. 질문은 이 세 쌍에서 B의 평균 처리율 우세가 반복해서 나타나는지입니다.
| 반복 비교 쌍 | A · 평균 FPS | B · 평균 FPS | B − A (FPS) |
|---|---|---|---|
| 1 | 100 | 103 | 3 |
| 2 | 102 | 99 | -3 |
| 3 | 101 | 101 | 0 |
A
- 전체 시간을 합친 FPS
- 101
- 기록별 평균 FPS의 최솟값
- 100
- 기록별 평균 FPS의 최댓값
- 102
B
- 전체 시간을 합친 FPS
- 101
- 기록별 평균 FPS의 최솟값
- 99
- 기록별 평균 FPS의 최댓값
- 103
최고 결과만 고르면 A는 102, B는 103 FPS입니다. 길이가 같은 모든 기록을 유지하면 전체 처리율은 둘 다 101 FPS입니다. 쌍별 차이는 +3, −3, 0 FPS로 방향이 바뀝니다.
- 내릴 수 있는 결론
이 기록 묶음은 B의 일관된 평균 FPS 우세를 보여 주지 않습니다. 두 설정이 동등하다는 증거도 아닙니다. 작은 학습용 예시만으로 그 주장을 확정할 수는 없습니다.
- 다음에 확인할 것
비교 가능한 관측을 반복하고 차이와 측정 조건을 함께 살펴보세요. 유효한 기록은 모두 유지하고 제외한 이유를 남기세요. 반복 순서나 백그라운드 작업으로 결과를 설명할 여지가 있다면 우열을 고르기 전에 비교 방식을 개선하세요.
- 결론이 적용되는 범위
범위의 겹침은 현상에 대한 설명이지 유의성 검정이 아닙니다. 최고 기록 하나나 고정된 반복 횟수는 보편적인 판정 규칙이 아닙니다.
평균은 좋아졌지만 긴 간격 지표는 나빠졌습니다
학습용으로 만든 두 기록은 모두 10초입니다. A에는 10 ms 간격 980개와 20 ms 간격 10개가 있습니다. B에는 8 ms 간격 1180개와 28 ms 간격 20개가 있습니다. 둘 다 같은 60 FPS 기준, 약 16.67 ms를 사용합니다.
A
- 시간 (s)
- 10
- 완전한 간격 수
- 990
- 평균 FPS
- 99
- 60 FPS 기준 시간을 초과하는 간격
- 10
- 해당 간격이 차지하는 시간 비율 (%)
- 2
B
- 시간 (s)
- 10
- 완전한 간격 수
- 1,200
- 평균 FPS
- 120
- 60 FPS 기준 시간을 초과하는 간격
- 20
- 해당 간격이 차지하는 시간 비율 (%)
- 5.6
A는 총 990개, B는 1200개 간격으로, 각각 99와 120 FPS입니다. 기준 시간을 초과한 간격은 A에서 200 ms, B에서 560 ms를 차지하며 총시간의 2%와 5.6%입니다. 이 비율은 간격 개수 비율이 아닌 시간 비율입니다.
- 내릴 수 있는 결론
이 예시에서 B의 평균 처리율은 더 높지만 선택한 기준을 초과하는 간격이 차지하는 시간도 더 큽니다. 수치는 상충 관계를 보여 줄 뿐, 전반적인 부드러움의 우열을 정하지 않습니다.
- 다음에 확인할 것
실제 질문이 평균 처리율, 반복되는 긴 간격, 또는 다른 측정 결과 중 무엇에 관한 것인지 밝히세요. 설정을 유지하기 전에 같은 장면의 반복 기록을 비교하고 긴 간격이 어디서 발생하는지 살펴보세요.
- 결론이 적용되는 범위
A/B 한 쌍으로 반복 가능한 효과를 입증할 수는 없습니다. 기준 시간은 선택한 비교선입니다. 이 예시는 지각이나 입력 지연을 측정하지 않으며 긴 간격의 원인도 찾아내지 않습니다.
기록 길이가 다르면 단순한 순위가 뒤집힐 수 있습니다
A는 120 FPS인 10초 기록과 60 FPS인 90초 기록을 합칩니다. B는 80 FPS인 50초 기록 두 개를 합칩니다. 따라서 각 설정의 합계는 100초입니다. A의 기록 길이는 서로 다르고 B는 같습니다.
| 기록 | 시간 (s) | 완전한 간격 수 | 평균 FPS |
|---|---|---|---|
| A1 | 10 | 1,200 | 120 |
| B1 | 50 | 4,000 | 80 |
| A2 | 90 | 5,400 | 60 |
| B2 | 50 | 4,000 | 80 |
A
- 전체 시간을 합친 FPS
- 66
- 기록별 FPS 값의 산술평균
- 90
B
- 전체 시간을 합친 FPS
- 80
- 기록별 FPS 값의 산술평균
- 80
A의 간격 수는 1200 + 5400 = 6600개로, 100초 전체에서 66 FPS입니다. B는 4000 + 4000 = 8000개로 80 FPS입니다. A에 표시된 두 FPS를 평균내면 90인데, 이를 전체 처리율로 제시하면 A를 B보다 높게 놓는 오류가 생깁니다.
- 내릴 수 있는 결론
전체 시간을 기준으로 이 학습용 데이터는 A 66, B 80 FPS를 줍니다. 90 FPS라는 간편 계산은 길이가 크게 다른 두 기록에 같은 가중치를 줍니다.
- 다음에 확인할 것
질문이 전체 처리율이라면 간격 수와 시간을 합치세요. 설정의 효과를 비교할 때는 장면 구성·워밍업·측정 지표도 맞춰야 합니다. 올바른 산술로도 서로 다른 조건을 바로잡을 수는 없습니다.
- 결론이 적용되는 범위
기록별 FPS의 평균은 다른 질문에 답하며 그 자체로 잘못된 계산은 아닙니다. 이를 전체 처리율로 바꿔 부르면 안 됩니다. 이 집계값만으로 B가 개선의 원인이었다고 말할 수는 없습니다.
기록은 유지하고 요약만 바꿔 보세요
같은 학습용 데이터를 사용해 전체 시간을 기준으로 한 계산과 각 사례의 간편 요약을 비교합니다. 요약만 바뀌며 기록과 조건은 바뀌지 않습니다.
목록에 있는 사례와 요약 방식을 선택한 뒤 다시 시도하세요.
선택한 요약
기록 선택하기 · 전체 시간 사용
- A · 평균 FPS
- 101
- B · 평균 FPS
- 101
- B − A (FPS)
- 0
길이가 같은 여섯 기록을 모두 유지합니다. A와 B의 전체 처리율은 모두 101 FPS입니다. 집계값이 같다고 성능이 동등하거나 프레임 간격 패턴이 같다는 뜻은 아닙니다.
각 설정의 최고 기록만 선택합니다. A 102, B 103 FPS입니다. 다른 유효한 관측값을 버리므로 우세가 반복된다는 증거가 아닙니다.
총간격 수를 총시간으로 나누면 A 66, B 80 FPS입니다. 이는 전체 처리율에 답할 뿐, 장면이 비교 가능하다거나 설정이 효과의 원인이라는 점을 입증하지 않습니다.
시간 가중치 없이 기록별 FPS를 평균내면 A 90, B 80입니다. 다른 방식의 요약이며 이를 전체 처리율이라 부르면 오해를 낳습니다.
불확실성을 담아도 유용한 결론입니다
이 데이터로는 ‘두 예시 모두 평균 100 FPS지만 간격의 패턴은 다르다’고 말할 수 있습니다. ‘이 PC는 부드럽게 느껴질 것이다’고 말할 수는 없습니다. 실제 설정은 비교 가능한 반복 측정과 개선하려던 경험을 확인한 뒤 유지하세요.
이 실습으로 알 수 없는 것
이 간격 패턴은 계산 원리를 보여 주며 사람의 지각을 모형화하지 않습니다. 화면 주사 동작, 가변 주사율, 프레임 생성, 입력 지연, 네트워크 지연, 긴 간격의 원인은 포함하지 않습니다. 기준 시간은 선택한 비교선이며 보편적인 좋음/나쁨의 경계가 아닙니다. 이 예시로 특정 게임, 하드웨어 구매, 수리를 추천하지 않습니다.