이 스터터 테스트는 프레임이 몇 개인지가 아니라 프레임이 얼마나 고르게 도착하는지를 측정합니다. 디스플레이가 높은 평균 프레임 레이트를 보고하더라도 화면이 거칠게 느껴질 수 있는데, 프레임 하나가 늦게 도착하거나 아예 도착하지 않으면 움직임의 리듬이 깨지기 때문입니다. 이 끊김이 바로 스터터, 다른 말로 잔상(잰크)이며, 평균 수치가 완벽해 보여도 눈은 그것을 알아챕니다. 이 테스트는 매 프레임마다 마커를 일정한 간격으로 이동시키고 그 아래에 프레임 사이의 실제 시간을 그래프로 그려, 느낌을 비교할 수 있는 숫자로 바꿔 줍니다.
부드러운 움직임은 일관된 프레임 타이밍에 달려 있습니다. 60 FPS에서는 새 프레임이 16.7 밀리초마다 나타나야 하고, 120 FPS에서는 8.3마다 나타나야 합니다. 한 프레임이 그 두세 배의 시간을 잡아먹으면 움직임이 앞으로 튀는데, 아무리 평균 프레임 레이트가 높아도 이를 감출 수는 없습니다.
테스트는 자동으로 시작됩니다. 살펴볼 것은 두 가지입니다.
카드는 측정 결과를 요약합니다. 예상 프레임 타임은 프레임 사이의 일반적인 간격이고, 최악의 프레임 간격은 기록된 가장 긴 단일 지연이며, 잔상(Janks)은 늦게 도착한 프레임을 모두 셉니다. 측정값 초기화로 누적값을 지운 다음, 테스트를 한동안 그대로 켜 두거나 탭을 전환했다가 돌아와 시스템이 시간이 지나면서 어떻게 동작하는지 확인해 보세요.
스터터는 렌더링 파이프라인이 마감 시간을 놓쳤다는 증상입니다. 프레임은 디스플레이가 개입하기도 전에, 컴퓨터를 늦게 떠납니다. 흔한 원인은 다음과 같습니다.
다른 브라우저 탭, 소프트웨어 업데이트, 바이러스 검사, 동기화 클라이언트 등이 잠깐 CPU 시간을 빼앗아 프레임을 마감 시간 너머로 밀어낼 수 있습니다. 조용한 구간이 길게 이어지다가 간간이 몰려서 나타나는 스터터는 대개 시스템의 다른 무언가가 깨어난다는 신호입니다.
그래픽 카드나 프로세서가 완전히 부하 상태이면 어떤 프레임은 다른 프레임보다 만드는 데 시간이 더 걸립니다. 이는 그래프에서 고립된 스파이크가 아니라 거칠고 고르지 못한 띠 형태로 나타납니다. 무거운 애플리케이션을 닫거나 게임 설정을 낮추면 완화됩니다.
배터리 절약 모드의 노트북이나 뜨거워진 기기는 의도적으로 속도를 낮춥니다. 프레임 레이트가 처지고 프레임 타임이 들쭉날쭉해집니다. 전원을 연결하거나, 통풍을 개선하거나, 성능 전원 계획으로 전환하면 대개 타이밍이 즉시 안정됩니다.
레이아웃 재계산, 가비지 컬렉션, 무거운 스크립트는 각각 렌더링을 한두 프레임 동안 멈추게 할 수 있습니다. 동일한 하드웨어에서 같은 페이지가 어떤 브라우저에서는 부드럽고 다른 브라우저에서는 끊기게 느껴지는 이유가 바로 이것입니다.
이것이 이 테스트가 존재하는 이유의 핵심입니다. 8 밀리초짜리 프레임 118개와 25 밀리초짜리 프레임 2개가 담긴 1초를 생각해 보세요. 평균은 여전히 대략 120 FPS로, 흠잡을 데 없어 보이는 숫자입니다. 그러나 그 긴 프레임 두 개는 눈에 보이는 끊김입니다. 프레임 타임 관점은 이를 잡아내지만, 평균화된 프레임 카운터는 결코 잡아내지 못합니다.
| 지표 | 알려 주는 것 | 사각지대 |
|---|---|---|
| 평균 FPS | 전체 처리량 | 고립된 늦은 프레임을 감춤 |
| 프레임 타임(프레임당) | 움직임의 리듬 | 한눈에 읽으려면 그래프가 필요함 |
| 잔상 횟수 | 움직임이 깨지는 빈도 | 각 끊김이 얼마나 심한지는 알려 주지 않음 |
| 최악의 프레임 간격 | 가장 심한 끊김의 심각도 | 추세가 아니라 단일 사건일 뿐임 |
네 가지를 함께 읽으면 전체 그림이 보입니다. 좋은 결과란 높고 안정적인 프레임 레이트에 낮은 잔상 횟수, 그리고 예상 프레임 타임에 가까운 최악의 간격입니다. 메인 FPS 테스트에서 원시 프레임 레이트를 교차 확인할 수 있으며, 초당 프레임 수에 관한 개요는 평균만으로는 왜 충분하지 않은지 설명합니다.
측정값이 문제를 보여 주면, 가능성 있는 원인들을 하나씩 짚어 보세요.
평균 프레임 레이트와 프레임 일관성은 서로 다른 것이기 때문입니다. 늦은 프레임 몇 개는 평균을 거의 움직이지 않지만 분명히 눈에 보이며, 여기서는 잔상으로 집계됩니다. 이 테스트가 드러내려고 만들어진 것이 바로 그 경우입니다.
특히 페이지가 막 로드된 직후나 탭을 전환할 때 이따금 고립된 스파이크가 나타나는 것은 정상입니다. 빨간색 막대가 꾸준히 이어지거나 최악의 간격이 예상 프레임 타임의 몇 배에 이른다면, 추적해 볼 만한 진짜 문제를 가리킵니다.
꼭 그렇지는 않습니다. 백그라운드 활동, 발열 스로틀링, 절전, 브라우저 끊김은 모두 성능이 충분한 하드웨어에서도 스터터를 일으킵니다. 업그레이드가 필요하다고 단정하기 전에 이런 것들부터 하나씩 짚어 보세요.
스터터는 타이밍 문제로, 프레임이 늦게 도착하는 것이라 이미지 전체가 덜컹거리지만 온전한 상태로 유지됩니다. 찢어짐은 동기화 문제로, 한 프레임이 주사(refresh)를 가로질러 쪼개지는 것입니다. 이에 대해서는 화면 찢어짐 테스트를 참고하세요.
테스트를 얼마나 오래 돌리느냐에 따라 달라지므로 단 하나의 합격선은 없지만, 건강한 결과의 형태는 분명합니다. 페이지가 안정된 뒤에는 잔상 횟수가 천천히 올라가거나 아예 늘지 않아야 하고, 최악의 프레임 간격은 대략 예상 프레임 타임의 1.5배 이내에 머물러야 합니다. 잔상 횟수가 초당 여러 번 늘어나거나 최악의 간격이 예상 수치의 몇 배에 이른다면, 움직임이 눈에 띄게 깨지고 있으며 앞서 말한 원인 중 하나가 작동하고 있다는 뜻입니다.
리뷰어들은 부드러움을 평균 프레임 레이트만으로 판단하는 일이 드뭅니다. 그들은 1% 및 0.1% 로우, 즉 가장 느린 상위 1%와 1천분의 1 프레임의 프레임 레이트도 함께 보고합니다. 이 수치들은 이 테스트가 측정하는 것과 같은 것을 설명하는데, 바로 평균이 아니라 최악의 순간들입니다. 평균은 높지만 1% 로우가 나쁜 게임이 거칠게 느껴지는 것은, 여기서 프레임 레이트는 높지만 잔상이 잦은 디스플레이가 그런 것과 똑같습니다. 이 페이지의 잔상 횟수와 최악의 프레임 간격은 그 백분위 로우의 브라우저 판입니다.
마이크로 스터터는 더 미묘한 사촌입니다. 극적인 스파이크 대신 프레임 타임이 길고 짧고 길고 짧게 번갈아 나타나기 때문에, 평균은 멀쩡해 보이고 최악의 간격조차 크지 않은데도 움직임이 살짝 고르지 않게 느껴집니다. 프레임 타임 그래프에서는 높이 솟은 고립된 스파이크가 아니라 들쭉날쭉한 띠로 나타납니다. 마이크로 스터터는 대개 불완전한 프레임 페이싱에서 비롯되는데, 프레임이 고르게 표시될 수 있는 속도보다 빠르게 생성되는 상황이며, 고정되고 잘 조율된 프레임 레이트가 더 높지만 불규칙한 것보다 더 부드러워 보일 수 있는 이유 중 하나입니다.
거꾸로 들리겠지만, 프레임 레이트를 제한하면 움직임의 느낌이 좋아지는 경우가 많습니다. 예컨대 90과 200 사이를 오가는 상한 없는 프레임 레이트는 프레임 타임을 끊임없이 바꾸며, 그 변동은 눈에 보입니다. 시스템이 항상 도달할 수 있는 안정적인 값으로 상한을 고정하면 모든 프레임의 길이가 같아지고, 눈은 이를 부드러움으로 읽습니다. 이 테스트에서 평균은 높은데 그래프가 불안정하다면, 그래프를 만들어 내는 소스에 상한을 걸고 띠가 안정되는지 지켜보세요. 초당 안정적인 100프레임이 이리저리 튀는 평균 140보다 낫습니다. 프레임 레이트를 주사율에 맞추는 것도 같은 논리이며, 가변 주사율은 프레임을 기다리게 강제하는 대신 주사를 각 프레임에 맞춰 옮겨 줌으로써 가장 큰 도움을 줍니다.
단 한 장면만으로는 오해할 수 있습니다. 테스트를 켜 둔 채 패턴을 살펴보세요. 몇 초마다 빨간색이 몰려 나타나면 타이머로 돌아가는 백그라운드 작업을, 프레임 타임이 서서히 길어지는 흐름은 발열 스로틀링을, 계속해서 거친 띠는 상시 부하 상태의 시스템을 시사합니다. 측정값을 초기화하고 조용한 1분과 바쁜 1분을(다른 탭을 열어 두거나 다운로드를 돌리면서) 비교하면, 이 테스트는 무엇이 당신의 기기에서 프레임을 훔쳐 가는지 알아내는 간단한 진단 도구가 됩니다.
프레임 일관성은 부드러운 움직임의 한 부분일 뿐입니다. 다음 동반 도구들로 이어서 살펴보세요.