테마 선택

📚 지식 노트

AI·하드웨어·주변기기·게임·컴퓨터 시스템·이론 컴퓨터 과학·수학·개발과 운영·보안·응용 분야에 대해 알아 두면 좋은 내용을 정리한 노트다. 위에서 분야를 고르고 아래에서 노트를 고른다.

게임 성능 지표

게임이 부드럽다는 느낌은 평균 fps 하나로 정해지지 않는다. 프레임이 얼마나 고르게 나오는지, 누른 뒤 화면이 바뀌기까지 얼마나 걸리는지를 함께 봐야 한다.

목차 (9)
  1. fps와 프레임 타임
  2. 1% low와 끊김(스터터)
  3. 헷갈리기 쉬운 말: 프레임 드랍, 스터터, 히치, 렉
  4. 입력 지연: 누른 뒤 화면이 바뀌기까지
  5. 주사율, VSync, 가변 주사율
  6. 업스케일링과 프레임 생성
  7. CPU 병목인가, GPU 병목인가
  8. 재는 도구
  9. 흔한 오해

fps와 프레임 타임

fps(frames per second)는 1초에 화면을 몇 장 새로 그렸는지다. 프레임 타임은 한 장을 그리는 데 걸린 시간(ms)으로, 같은 것을 뒤집어 본 값이다. 프레임 타임 = 1000 ÷ fps다.

fps프레임 타임느낌
3033.3ms콘솔 게임의 화질 우선 모드. 화면을 빨리 돌리면 뚝뚝 끊겨 보인다
6016.7ms대부분 게임의 기본 목표
1446.9ms고주사율 모니터의 흔한 목표. 시점 이동이 눈에 띄게 매끄럽다
2404.2ms경쟁 게임용. 60 → 144보다 체감 차이가 작다

fps가 높아질수록 같은 10fps 차이의 의미가 작아진다. 30 → 40fps는 프레임 타임이 8.3ms 줄지만, 200 → 210fps는 0.2ms만 준다. 그래서 성능 비교는 프레임 타임으로 보는 쪽이 정확하다.

1% low와 끊김(스터터)

평균 60fps라도 대부분 10ms에 그리다가 가끔 100ms가 걸리면 그 순간 화면이 멈칫한다. 이것이 스터터(stutter)다. 평균 fps는 이 멈칫함을 거의 드러내지 않는다.

  • 1% low: 가장 느렸던 1% 프레임의 성능을 fps로 바꾼 값. 평균과 가까울수록 고르다.
  • 0.1% low: 가장 느렸던 0.1%. 셰이더 컴파일, 저장장치 읽기처럼 드물게 크게 튀는 끊김을 잡는다.
  • 프레임 타임 그래프: 시간에 따른 프레임 타임을 그린 선. 평평하면 부드럽고, 가시처럼 튀는 곳이 끊김이다.

흔한 원인은 처음 보는 효과를 그릴 때의 셰이더 컴파일, 새 지역을 불러오는 저장장치 읽기, VRAM·RAM 부족이다(GPU 노트, RAM 노트).

같은 기록이라도 도구마다 1% low가 다르게 나올 수 있다. 계산법이 셋이기 때문이다. CapFrameX의 설명을 따르면 P1(1번째 백분위)은 프레임의 99%가 그보다 높은 fps 값이고, 1% low 평균은 가장 낮은 1% 값들의 평균이라 늘 P1보다 낮다. 1% low 적분은 프레임 개수가 아니라 시간으로 센다. 전체 측정 시간의 1% 동안 그 값 아래에 머문 fps다. 서로 다른 리뷰의 1% low를 견줄 때는 어느 계산인지 먼저 본다.

셰이더 컴파일 끊김이 처음 한 번만 나는 이유는 이렇다. GPU가 물체를 그리려면 셰이더와 그리기 설정을 묶은 파이프라인 상태(PSO)를 드라이버가 기계어로 컴파일해 둬야 한다. 처음 보는 효과를 그 자리에서 컴파일하면 프레임 하나가 길게 늘어나고(언리얼 엔진은 20ms를 넘는 컴파일을 끊김으로 기록한다), 한 번 만든 것은 캐시에 남아 다음부터는 매끄럽다. 그래서 요즘 게임은 처음 켤 때 "셰이더 컴파일 중" 화면에서 미리 만들거나, 불러오는 동안 쓸 만한 것을 골라 뒤에서 컴파일한다. 엔진 쪽 구조는 렌더링 노트에 있다.

헷갈리기 쉬운 말: 프레임 드랍, 스터터, 히치, 렉

모두 “끊긴다”로 뭉뚱그려 말하지만, 일어나는 일과 원인이 다르다. 크게 보면 프레임이 늦거나 고르지 않게 오는 프레임 페이싱(frame pacing) 문제와, 프레임은 제때 오는데 다른 곳에서 생기는 문제로 나뉜다.

프레임 페이싱 문제: 프레임이 늦거나 고르지 않다

부드러움(smoothness)을 깨는 쪽이다. 영어로는 흔히 stutter, 웹·앱 화면에서는 jank라고 뭉뚱그려 부르고, 한국어로는 “끊김”·“버벅임”이 가장 넓은 말이다. 프레임 타임 그래프 모양으로 서로 구분된다.

프레임 타임 그래프로 본 끊김의 종류: 프레임 드랍은 선이 한동안 높게 머물고, 스터터는 가끔 가시가 튀고, 히치는 드물게 아주 크게 튀고, 고르지 않은 간격은 평균은 같지만 톱니처럼 오르내린다프레임 드랍한동안 계속 느리다스터터가끔 몇 장이 튄다히치드물게 크게 멈춘다↑ 250ms고르지 않은 간격평균은 같은데 들쭉날쭉16.7ms(60fps) 기준선 · 선이 위로 갈수록 그 프레임이 오래 걸렸다 · 값은 예시
프레임 타임 그래프 모양으로 본 끊김의 종류. 평균 fps가 같아도 모양이 다르면 느낌과 원인이 다르다.
말무슨 일이 일어나나숫자로 보이는 것흔한 원인
프레임 드랍 (fps 저하)한동안 계속 fps가 목표 아래로 내려간다. 화면이 전체적으로 무겁고 덜 매끄럽다평균 fps가 내려가고 프레임 타임이 함께 높아진다무거운 장면(폭발·인원), GPU·CPU 한계, 발열로 인한 클럭 저하
스터터 (stutter)평소엔 부드럽다가 몇 장이 길게 걸려 순간 멈칫한다평균 fps는 멀쩡하고 1% low가 낮다. 그래프에 가시가 선다셰이더 컴파일, 에셋 스트리밍, 백그라운드 프로그램
히치 (hitch)드물게 수백 ms~몇 초 동안 화면이 멈춘다. 큰 스터터다0.1% low가 크게 떨어진다새 지역 불러오기, 자동 저장, VRAM이 모자라 RAM과 주고받기
마이크로스터터 · 고르지 않은 프레임 간격fps 숫자는 정상인데 왠지 덜컥거린다. 장면 간격이 길었다 짧았다 한다평균·1% low가 괜찮아도 그래프가 톱니 모양이다VSync 상태에서 주사율보다 낮은 fps, 맞지 않는 fps 상한, 프레임 생성의 간격 문제
저더 (judder)영상·컷신이 규칙적으로 덜컥인다. 24fps 영상을 60Hz에 맞추려고 장면마다 보이는 시간이 달라진다게임 fps와 상관없다콘텐츠 fps와 주사율이 배수가 아니다(24 → 60)

그 밖의 문제: 프레임은 제때 온다

프레임 타임 그래프가 평평해도 생긴다. 원인이 화면 동기화, 반응성(지연), 네트워크, 모니터로 저마다 달라 고치는 곳도 다르다.

프레임 타임과 상관없이 생기는 문제: 티어링은 화면 위아래 장면이 어긋나고, 입력 지연은 프레임은 계속 나오는데 클릭 뒤 반응이 늦고, 러버밴딩은 앞으로 간 캐릭터가 서버 위치로 되돌아가고, 잔상은 움직이는 물체 뒤에 흐린 꼬리가 남는다티어링한 화면에 두 장면경계입력 지연화면은 매끄럽고 반응이 늦다지연클릭화면 반응러버밴딩서버 위치로 끌려간다점선: 내 화면 예측 · 실선: 서버 위치잔상움직이는 물체 뒤 꼬리움직이는 방향넷 다 프레임 타임 그래프는 평평할 수 있다 · 원인은 동기화, 지연, 네트워크, 모니터 · 그림은 예시
프레임 페이싱과 상관없는 문제들. 티어링은 동기화, 입력 지연은 반응성, 러버밴딩은 네트워크, 잔상은 모니터 쪽 문제다.
말무슨 일이 일어나나숫자로 보이는 것흔한 원인
티어링 (tearing)시간이 아니라 공간 문제다. 한 화면의 위아래에 서로 다른 두 장면이 걸쳐 찢어져 보인다fps는 정상이다VSync를 끄고 가변 주사율도 없다
입력 지연 (input lag)화면은 부드러운데 누른 뒤 반응이 늦다fps는 정상이고, 시스템 지연(ms)이 크다렌더 대기열, VSync, 느린 모니터 처리
렉 · 러버밴딩 (rubber-banding)내 화면은 부드러운데 다른 사람이 순간 이동하거나 내 캐릭터가 뒤로 끌려간다fps는 정상이고, 핑이 높거나 패킷 손실이 있다네트워크 지연·손실, 서버 과부하(네트워크 노트)
잔상 (ghosting)움직이는 물체 뒤에 흐린 꼬리가 남는다fps와 상관없다모니터 픽셀의 색 바뀜이 느리다(모니터 노트)

“프레임 드랍”은 원래 다 그린 장면을 화면이나 영상에 내보내지 못하고 버린다는 뜻이기도 하다. 방송 프로그램의 “드롭된 프레임” 경고는 게임 fps가 아니라 인코더나 업로드가 따라가지 못했다는 신호다.

무엇인지 가리는 순서

  1. 오버레이의 fps 숫자가 함께 떨어지면 프레임 드랍이다.
  2. fps는 그대로인데 멈칫하면 프레임 타임 그래프를 본다. 가시면 스터터·히치, 톱니면 프레임 간격 문제다.
  3. 내 화면은 매끄러운데 다른 플레이어만 이상하면 네트워크다.
  4. 화면이 가로로 찢어지면 티어링, 물체 뒤에 꼬리가 남으면 잔상이다.

입력 지연: 누른 뒤 화면이 바뀌기까지

마우스를 누르고 총구가 화면에서 움직이기까지는 여러 단계를 거친다. 각 단계의 시간이 쌓인 것이 시스템 지연(end-to-end latency)이다.

입력 지연의 구성: 60Hz에 VSync를 켜면 렌더 대기열과 화면 출력에서 지연이 쌓여 약 88ms, 240Hz 가변 주사율에 대기열을 비우면 약 14ms다(예시 값)60Hz · VSync 켬대기열이 쌓인다약 88ms240Hz · 가변 주사율대기열을 비운다약 14ms입력 장치게임(CPU)렌더 대기열GPU화면 출력마우스를 누른 순간부터 화면이 바뀌기까지. 값은 예시이며 게임·장비마다 다르다.
입력 지연의 구성(예시 값). 높은 fps와 주사율은 모든 칸을 줄이고, 대기열을 비우면 가장 큰 칸이 사라진다.
  1. 입력 장치: 마우스·패드가 신호를 컴퓨터에 보내는 간격(폴링 레이트). 1000Hz면 최대 1ms다(마우스 노트).
  2. 게임(CPU): 입력을 읽고 게임 상태를 계산해 GPU에 그릴 명령을 만든다.
  3. 렌더 대기열: CPU가 GPU보다 빠르면 그릴 명령이 줄을 서서 기다린다. 줄이 길수록 화면에는 예전 입력이 나온다.
  4. GPU: 실제로 한 장을 그린다.
  5. 화면 출력: 그린 장면을 모니터로 보내 위에서 아래로 그리고, 픽셀 색이 바뀐다(모니터 노트).

GPU 사용률이 100% 가까이 차는 장면에서 대기열이 가장 잘 쌓인다. NVIDIA Reflex·AMD Anti-Lag·게임의 저지연 모드는 CPU가 GPU를 앞질러 달리지 않게 해 이 대기열을 비운다. 내 반응 속도와 장비 지연을 함께 느껴 보려면 반응 속도 테스트를 해 본다.

주사율, VSync, 가변 주사율

모니터는 정해진 간격(60Hz면 16.7ms)마다 화면을 새로 그린다. GPU가 그 간격과 다른 박자로 장면을 내보내면 두 가지 중 하나를 고르게 된다.

설정동작장점단점
VSync 끔다 그리는 대로 바로 내보낸다지연이 가장 짧다화면 중간에서 위아래가 어긋나는 티어링(tearing)이 생긴다
VSync 켬모니터의 다음 새로 고침까지 기다렸다 내보낸다티어링이 없다기다리는 만큼 지연이 늘고, 주사율보다 조금만 느려도 fps가 절반(60 → 30)으로 떨어지며 끊긴다
가변 주사율 (G-Sync · FreeSync · VRR)모니터가 GPU의 박자에 맞춰 새로 고침 간격을 바꾼다티어링 없이 지연도 적다. fps가 흔들려도 부드럽다모니터가 지원하는 범위(예: 48~144Hz) 안에서만 동작한다

가변 주사율을 쓸 때는 fps 상한을 모니터 주사율보다 조금 낮게(144Hz면 140 안팎) 걸어 두면, fps가 범위 위로 넘어가 VSync나 티어링으로 바뀌는 일을 막는다. 모니터의 잔상과 주사율은 모니터 테스트에서 눈으로 확인할 수 있다.

반대로 fps가 범위 아래로 떨어지면 LFC(low framerate compensation)가 같은 장면을 두 번 이상 보여 줘 새로 고침 간격을 범위 안으로 되돌린다. 48~144Hz 모니터에서 40fps면 장면마다 두 번씩 80Hz로 그리는 식이다. 장면 수가 늘지는 않으니 매끄러움은 40fps 그대로이고, 티어링과 VSync 끊김만 피한다. AMD는 FreeSync Premium 등급부터 LFC를 반드시 지원하게 했다.

업스케일링과 프레임 생성

  • 업스케일링(DLSS·FSR·XeSS의 화질 모드): 낮은 해상도로 그린 뒤 AI·이전 프레임 정보로 높은 해상도처럼 키운다. GPU 일이 줄어 진짜 fps가 오르고 입력 지연도 함께 준다.
  • 프레임 생성(DLSS Frame Generation·FSR Frame Generation): 실제로 그린 두 장 사이에 추정한 장면을 끼워 넣는다. 화면의 fps 숫자는 두 배 가까이 오르지만, 게임이 입력을 읽는 박자는 그대로다. 다음 진짜 장면을 기다렸다 사이를 만들기 때문에 입력 지연은 오히려 조금 는다.

그래서 프레임 생성은 원래 fps가 충분할 때(대략 60 이상) 화면을 더 매끄럽게 보이게 하는 기능이다. 30fps 게임을 빠릿하게 만드는 기능은 아니다. 2025년 1월 NVIDIA가 RTX 50 시리즈용으로 발표한 DLSS 4의 멀티 프레임 생성은 그린 장면 하나마다 추정 장면을 최대 셋까지 끼운다(NVIDIA 발표). 화면의 fps가 최대 네 배가 돼도 입력을 읽는 박자는 그린 장면 수 그대로라, 위의 원리가 더 크게 적용된다.

업스케일링의 화질 모드는 내부 해상도를 얼마나 낮추느냐다. FSR 2가 정한 가로·세로 축소 비율을 4K(3840×2160) 출력에 대면 다음과 같다. 다른 업스케일러도 비슷한 이름의 모드를 두지만 비율은 조금씩 다를 수 있다.

모드축소 비율(한 변)4K 출력의 내부 해상도그리는 픽셀 수
Quality1.5배2560×1440약 44%
Balanced1.7배약 2259×1271약 35%
Performance2.0배1920×108025%
Ultra Performance3.0배1280×720약 11%

한 변을 1.5배 줄이면 픽셀 수는 그 제곱인 2.25분의 1로 준다. 그래서 4K의 Performance 모드는 1080p만큼만 그리고, 출력 해상도가 낮을수록 내부 해상도도 함께 낮아져 복원할 재료가 모자라다. 같은 모드라도 1080p 출력에서 더 흐려 보이는 이유다(FSR 2 문서).

CPU 병목인가, GPU 병목인가

확인GPU 병목CPU 병목
GPU 사용률95~100%에 붙어 있다한참 낮다(예: 60%)
해상도·그래픽 옵션을 낮추면fps가 오른다fps가 거의 그대로다
자주 보이는 곳고해상도, 높은 그래픽 옵션사람·유닛이 많은 장면, 전략·시뮬레이션 게임, 아주 높은 fps 목표

CPU 병목일 때 그래픽 카드를 바꿔도 fps는 거의 오르지 않는다. 이때는 CPU, 메모리 속도, 게임 안의 시야 거리·인원 옵션이 영향을 준다(CPU 노트).

재는 도구

  • 게임·드라이버 오버레이: Steam 성능 모니터, NVIDIA 앱, AMD Adrenalin 오버레이로 fps·프레임 타임·GPU 사용률을 화면에 띄운다.
  • PresentMon: 프레임이 화면에 나간 시각을 기록하는 Intel의 공개 도구. 많은 측정 도구가 이것을 바탕으로 한다.
  • CapFrameX: PresentMon 기록을 받아 1% low와 프레임 타임 그래프를 그려 비교한다.

비교할 때는 같은 장소·같은 동작을 같은 길이로 여러 번 재고 평균을 낸다. 메뉴 화면이나 가만히 서 있는 장면은 실제 플레이와 성능이 크게 다르다.

흔한 오해

  • “평균 fps가 높으면 부드럽다” — 1% low와 프레임 타임이 고르지 않으면 높은 평균에서도 끊긴다.
  • “모니터가 60Hz면 60fps 넘게 뽑아도 소용없다” — 화면에 보이는 장 수는 60이지만, 더 최근 입력으로 그린 장면이 나가 입력 지연은 준다.
  • “프레임 생성을 켜면 반응도 빨라진다” — 보이는 fps만 오른다. 입력 지연은 줄지 않고 조금 는다.
  • “GPU 사용률 100%는 위험하다” — 정상적으로 일을 다 하고 있다는 뜻이다. 온도가 정상 범위면 문제없다(냉각 노트).