ToolActToolAct

화면 주사율 테스트

모니터의 실제 주사율을 검출하고 고주사율 성능을 테스트

0 fps
현재 프레임률
-- Hz
예상 주사율
0 프레임
프레임 수
0
테스트 시간
테스트 모드
0fps
중지됨
FPS 현재 프레임률

화면 주사율이란?

화면 주사율은 디스플레이가 1초에 몇 번 새 이미지를 갱신할 수 있는지를 나타내며 Hz로 표시합니다. 60Hz 화면은 초당 최대 60회 갱신하고, 120Hz, 144Hz, 240Hz 패널은 장치 전체가 지원할 때 스크롤, 애니메이션, 드로잉, 게임 화면을 더 부드럽게 보여 줄 수 있습니다. 이 테스트는 모니터가 기대한 주사율로 실제 동작하는지, 시스템 설정, 절전 모드, 케이블, 어댑터, 그래픽 드라이버, 외부 모니터 연결이 출력을 제한하는지 확인하는 데 도움이 됩니다. 브라우저 부하나 백그라운드 작업도 측정값에 영향을 줄 수 있습니다.

사용 방법

사용 방법

  1. 테스트 모드 선택: 바운싱 볼, 스크롤 스트라이프, 플래시 테스트, UFO 테스트
  2. '테스트 시작' 버튼을 클릭하여 감지를 시작하세요
  3. 애니메이션의 부드러움과 FPS 값 변화를 관찰하세요
  4. 예상 주사율 결과가 표시될 때까지 몇 초 기다려 주세요
  5. 더 정확한 측정을 위해 전체 화면으로 테스트해 보세요

테스트 팁

  • 테스트 전에 애니메이션이 많은 다른 탭을 닫아 주세요. 브라우저 부하, 절전 모드, 외부 디스플레이는 측정된 부드러움에 영향을 줄 수 있습니다.
  • 표시된 FPS를 운영 체제 또는 그래픽 제어판의 모니터 설정과 비교해 보세요.

활용 사례

애니메이션 프레임으로 디스플레이 주사율 추정테스트를 시작하면 requestAnimationFrame 타임스탬프를 수집하고, 현재 FPS를 계산하며, 60, 75, 120, 144, 165, 240, 360Hz 등 가장 가까운 일반 주사율을 추정합니다. 프레임 수와 경과 시간은 샘플이 충분히 실행되었는지 판단하는 데 도움이 됩니다. 페이지 로드 후 첫 500ms보다 3초 윈도우가 훨씬 깔끔한 추정치를 제공합니다.
여러 움직임 패턴으로 끊김 현상 포착테스트 실행 중 바운싱 볼, 스크롤 줄무새, 깜빡임 프레임, UFO 스타일 움직임을 전환하세요. 서로 다른 패턴은 단일 FPS 숫자로는 볼 수 없는 티어링, 저터, 모션 클리어티, 백라이트 스트로빙(OLED의 PWM 디밍)을 가시화합니다. 겉보기에 동일한 144Hz와 165Hz 패널 사이를 선택할 때 유용합니다.
시간에 따른 프레임 안정성 관찰도구는 롤링 FPS 기록을 유지하고 60Hz 기준선과 함께 캔버스 차트에 그려줍니다. 모니터, 브라우저 탭, 전원 모드, 외부 디스플레이, 부하 하의 애니메이션 성능을 비교할 때 유용합니다. 테스트 탭을 항상 표시 상태로 유지하세요. 탭이 포커스를 잃으면 백그라운드 스로링으로 120Hz에서 30fps로 떨어질 수 있습니다.
가변 주사율 디스플레이에서 프레임 드롭 감지바운싱 볼이 실행 중일 때 FPS 기록 차트를 관찰하세요. FreeSync 또는 G-Sync 디스플레이는 LFC 범위 내에서 안정적인 수평선을 유지해야 하며, 프레임 드롭은 그 아래로 떨어지는 것으로 나타납니다. 선이 계속 60Hz로 고정되면 핫플러그 이벤트, HDMI 1.4 케이블 병목, 또는 드라이버 오버라이드 후 패널이 고정 모드로 돌아갔을 수 있습니다.
케이블, 어댑터, OS 설정 체인 검증추정된 주사율이 패널 사양보다 낮으면 HDMI 2.1, DisplayPort 1.4, USB-C Alt-Mode 케이블이 대역폭을 지원하는지, OS 디스플레이 설정이 낮은 주사율로 고정되어 있지 않은지, 절전 모드가 비활성화되어 있는지 확인하세요. 백그라운드 탭의 브라우저 스로링도 GPU가 다르게 보고하더라도 패널의 실제 주사율 아래로 결과를 제한할 수 있습니다.

기술 원리

주사율 추정은 디스플레이의 수직 동기화 신호에 고정된 브라우저 콜백 requestAnimationFrame(t => ...)을 사용합니다. 각 호출은 밀리초 단위의 DOMHighResTimeStamp를 수신하며, 연속 타임스탬프의 차이가 프레임 간격을 주고, 1000을 이 간격의 이동 평균으로 나눈 값이 헤르츠 단위의 추정 주사율이 됩니다. 추정기는 수백 프레임을 수집하여 일시적 지연이 평균화되도록 한 뒤, 결과를 가장 가까운 일반 패널 주사율로 스냅합니다: 60, 75, 90, 120, 144, 165, 240 또는 360Hz. 측정은 체인에서 가장 느린 링크에 의해 제한됩니다. 144Hz 패널도 OS 디스플레이 설정이 60Hz로 고정되어 있으면 60Hz로 읽히고, HDMI 1.4 케이블이 대역폭을 감당하지 못하면(1080p@144Hz는 약 7.6Gbps가 필요하며, 색상 깊이를 고려하면 HDMI 1.4의 8.16Gbps 여유를 초과합니다), 또는 GPU 드라이버가 절전 제한을 적용하면 마찬가지입니다. 가변 주사율 기술(AMD FreeSync, NVIDIA G-Sync)은 패널이 동작 범위 내에서 임의의 주사율을 유지할 수 있게 하며, 콘텐츠가 최소값보다 느리게 실행될 때 저프레임률 보상으로 전환합니다. 브라우저 스케줄링 자체에 상한이 추가됩니다. 테스트 탭이 포커스를 잃으면 Chromium과 Firefox 모두 Page Visibility에 따라 requestAnimationFrame을 약 1Hz로 스로틀링하며, 교차 출처 숨겨진 iframe은 탭이 활성 상태여도 intersection-observer 스로틀링에 의해 약 30fps로 고정될 수 있습니다. WebGL과 소프트웨어 폴백 합성 경로도 GC 일시 중지 중 프레임을 드롭할 수 있으므로, 깔끔한 측정을 위해서는 테스트 탭을 포그라운드에 두고, 다른 탭에서 전체 화면 비디오를 재생하지 않으며, 스냅 투 레이트 출력을 신뢰하기 전에 최소 3초의 샘플 윈도우가 필요합니다.

  • 샘플링: requestAnimationFrame 타임스탬프를 차분; FPS = 1000 / 평균(프레임 간격 ms); 추정기는 60/75/90/120/144/165/240/360Hz 버킷으로 스냅
  • 대역폭 제한: 1080p@144Hz는 약 7.6Gbps 필요, 4K@120Hz는 약 25Gbps 필요; 최상위 계층에는 HDMI 2.1(48Gbps) 또는 DSC 포함 DisplayPort 1.4(32.4Gbps) 필요
  • OS/드라이버 제한: 패널은 144Hz를 지원할 수 있지만 Windows 디스플레이 설정 또는 NVIDIA 제어판이 60Hz로 고정할 수 있음; rAF는 합성기에 주어진 값을 초과할 수 없음
  • VRR(FreeSync/G-Sync): 패널 주사율이 범위 내에서 유동적; LFC 임계값 이하에서는 GPU가 프레임을 복제하여 밝기를 일관되게 유지
  • 탭 스로틀링: Page Visibility가 백그라운드 탭을 약 1Hz로 낮춤; 교차 출처 숨겨진 iframe은 부모 탭이 포그라운드여도 약 30fps로 스로틀링됨
  • 샘플 윈도우: 500ms 미만 측정은 노이즈가 많음; 표준 주사율로 스냅하기 전에 탭을 포그라운드로 두고 최소 3초 수집하여 안정적인 추정치 확보

예시

표준 60 Hz 사무용 모니터

모드:           Bouncing Ball
측정 시간:      5초
프레임 수:      298
현재 FPS:       59.6
추정 주사율:    60 Hz

2020년 이전에 출시된 대부분의 데스크톱과 노트북 디스플레이는 60 Hz로 제한됩니다.

144 Hz 게이밍 모니터

모드:           UFO Test
측정 시간:      5초
프레임 수:      718
현재 FPS:       143.6
추정 주사율:    144 Hz

e스포츠 패널의 일반적인 사양; DisplayPort 1.2+ 또는 HDMI 2.0+가 필요하며 OS의 주사율도 144 Hz로 설정해야 합니다.

백그라운드 탭 스로틀링

모드:           Scrolling Bars
현재 FPS:       30.0
추정 주사율:    30 Hz (제한됨)

탭이 포커스를 잃으면 Chrome과 Firefox는 requestAnimationFrame을 약 30 fps로 제한하므로 테스트 탭은 항상 화면에 표시되어야 합니다.

자주 묻는 질문

주사율은 어떻게 측정하나요?

requestAnimationFrame()으로 초당 렌더링되는 프레임 수를 셉니다. 브라우저는 디스플레이가 새로고침될 때마다 이 콜백을 호출하므로, 프레임 수를 경과 시간으로 나누면 실제 주사율이 나옵니다. 결과는 보통 60, 75, 100, 120, 144, 165, 240Hz 같은 깔끔한 값으로 반올림됩니다.

왜 모니터 사양보다 낮은 값이 나오죠?

흔한 원인들: 절전 모드가 GPU를 제한하고 있거나, 모니터 케이블이 정격 주사율을 지원하지 못하거나(HDMI 1.4는 4K에서 60Hz가 한계, 그 이상은 DP 1.2+ 또는 HDMI 2.0+ 필요), 모니터는 고주사율을 지원해도 OS가 60Hz로 설정되어 있거나, 다른 탭이 메인 스레드를 점유해 프레임이 떨어지는 경우입니다.

60Hz 모니터인데 왜 그보다 높은 값이 나오나요?

일부 브라우저는 처음 몇 프레임 동안 실제 디스플레이 주사율보다 빠르게 requestAnimationFrame을 호출할 수 있습니다. 특히 멀티 모니터 환경에서는 Chrome이 가장 높은 주사율을 가진 디스플레이의 값을 잡기도 합니다. 안정된 결과를 보려면 10초 이상 측정하세요.

프레임률(FPS)과는 어떻게 다른가요?

주사율은 모니터의 초당 최대 프레임 수입니다. FPS는 애플리케이션이 만들어내는 프레임 수입니다. 이 둘은 별개입니다. 60Hz 모니터에서 200FPS로 도는 게임이라도 실제로는 초당 60개의 고유 프레임만 표시됩니다(VSync가 꺼져 있으면 테어링 발생).

가변 주사율(G-Sync, FreeSync)은 어떻게 되나요?

VRR 모니터는 GPU 출력에 맞춰 프레임 단위로 주사율을 변경합니다. 이 페이지는 측정 중의 평균 주사율을 측정하므로, VRR 디스플레이에서는 모니터 최댓값이 아니라 브라우저가 그 시점에 렌더링 중인 값이 결과로 나옵니다.

측정값이 저장되거나 업로드되나요?

아니요. 측정은 모두 클라이언트에서 이루어집니다. 결과는 기록되거나 전송되지 않습니다.

창 모드에서 해도 되나요, 전체 화면이 좋나요?

둘 다 가능하지만, 백그라운드 탭이나 포커스를 잃은 창은 배터리 절약을 위해 보통 약 1fps로 제한됩니다. 정확한 결과를 위해 탭에 포커스를 두고, 가능하면 전체 화면으로 측정하세요.