한국어English日本語简体中文繁體中文DeutschไทยTiếng ViệtРусскийPortuguês (Brasil)EspañolBahasa Indonesia

게임 렉 백서 › L2 클라이언트 OS·기기

창 최소화·비활성 시 처리 제한 Minimized / unfocused window throttling

원인 ID co-unfocused · 주 담당 게임개발팀·클라이언트 개발

그림과 실험이 있는 원본 카드로 열기 →

다른 창을 보거나 게임을 최소화하면 게임과 윈도우가 전기를 아끼려고 게임을 느리게 돌립니다. 돌아오면 밀린 패킷이 몰려오거나, 이미 접속이 끊겨 있습니다.

왜 Alt+Tab으로 다른 창을 보거나 게임을 최소화 → 그러면 게임이 보이지 않는 동안 FPS를 크게 낮추거나 멈추고 윈도우도 보이지 않는 프로그램의 우선순위를 낮춤 → 화면에서는 돌아오는 순간 몰아치기, 오래 내려 두었다면 접속 끊김

증상
몰아치기, 뚝뚝 끊김, 접속 끊김
요인
정체
누가 겪나
나만
언제
특정 행동을 할 때, 가만히 있다가
담당
주 담당 게임개발팀·클라이언트 개발
게임개발팀 할 일
창이 안 보여도 패킷 수신과 하트비트는 별도 스레드에서 계속, 엔진의 “백그라운드에서 실행” 설정 확인, 복귀할 때 최신 상태로 한 번에 맞추기.
수치 감각
창이 안 보일 때 FPS를 5~10으로 낮추면 프레임 하나가 100~200ms. 패킷을 프레임마다 처리하는 게임은 그만큼 패킷을 늦게 읽습니다.
그래프에서는
끊겼다가 몰아서 · 프레임 간격(창 전환 전후), 처리한 패킷 수
확인할 곳
PresentMon을 켠 채로 Alt+Tab·최소화를 해 보고 창이 안 보일 때의 프레임 간격을 봄. 게임 로그에 창 포커스가 바뀐 시각을 남겨 끊김 사유와 맞춰 봄
이러면 맞음
창이 안 보이는 동안 프레임 간격이 100ms 이상으로 늘거나 기록이 끊기고, 돌아온 순간 밀린 패킷을 한꺼번에 처리하며 몰아치기. 오래 내려 두면 하트비트 타임아웃으로 끊김
이러면 아님
창을 띄워 둔 채로도 같으면 “백그라운드 프로세스의 CPU 점유”나 네트워크 쪽
확인 수단
유저 쪽 환경에서 확인
더 알아보기
윈도우 11은 최소화되거나 완전히 가려져 소리도 내지 않는 창의 프로그램에 1ms 타이머를 보장하지 않습니다. 배터리로 도는 노트북에서는 그런 프로그램을 전기를 가장 적게 쓰는 속도로 낮추고, 코어 종류가 섞인 CPU라면 느린 효율 코어로 돌리기도 합니다. 같은 PC의 두 클라이언트 중 백그라운드 쪽만 이상하다면 “백그라운드 창의 처리 제한” 항목을 함께 보세요.

출처

  1. Quality of Service Microsoft
    보이지도 들리지도 않는 창의 프로그램은 Low QoS, 배터리일 때 가장 효율적인 CPU 속도와 효율 코어로 스케줄링
  2. timeBeginPeriod function (timeapi.h) Microsoft
    윈도우 11은 가려지거나 최소화된 창의 프로세스에 기본보다 높은 타이머 해상도를 보장하지 않음
  3. Application.runInBackground Unity
    유니티 기본값은 false라 창이 백그라운드로 가면 게임 루프가 멈춤
  4. PresentMon Capture Application (README-CaptureApplication.md) Intel
    MsBetweenPresents: 이번 Present() 호출과 이전 호출 사이 시간(ms)

함께 보면 좋은 원인

같은 층: L2 클라이언트 OS·기기

같은 증상(몰아치기)의 다른 층 원인

그림과 실험이 있는 원본 카드 보기