에너지 절약 모드에서 화면 멈춤

François Doray
François Doray

게시일: 2025년 1월 20일

Chrome 133 (2025년 2월)부터 에너지 절약 모드가 활성화되면 CPU를 많이 사용하는 대상 백그라운드 탭이 정지됩니다. 이는 절전 모드를 사용하는 사용자와 배터리 수명의 1%가 중요한 사용자의 배터리 소모를 줄이기 위한 것입니다. 서비스 중단을 최소화하기 위해 특정 기준을 충족하고 CPU 사용량이 높은 백그라운드 탭만 동결됩니다.

화면 멈춤이란 무엇인가요?

동결하면 웹페이지에서 작업 실행이 일시중지됩니다. 여기에는 다음이 포함됩니다.

  • 이벤트 핸들러 (예: 입력, 네트워크, 센서)
  • 타이머
  • Promise 리졸버

정지는 탭이 메모리에서 로드 취소되는 삭제와 다릅니다. 고정된 탭에 다시 포커스가 맞춰지면 자동으로 고정이 해제되고 상태가 손실되지 않고 대기열에 있는 모든 태스크가 실행됩니다.

정지 및 재개 이벤트는 페이지가 정지되거나 재개될 때 전달됩니다(Page Lifecycle API 문서 참고). 이러한 이벤트를 통해 페이지는 사용되지 않는 리소스를 해제하거나, 서버에 페이지가 일시중지되었음을 알리거나, 측정항목을 기록할 수 있습니다.

어떤 페이지를 정지할 수 있나요?

동결은 탐색 컨텍스트 그룹에서 작동합니다. 일반적으로 탐색 컨텍스트 그룹은 단일 탭으로 구성됩니다. 하지만 window.open()와 같은 API를 사용할 때는 여러 탭이 동일한 그룹에 속할 수 있습니다.

에너지 절약 모드가 사용 설정된 경우 다음 조건을 충족하는 경우 둘러보기 컨텍스트 그룹이 동결됩니다.

  • 그룹 내의 모든 페이지가 5분 넘게 숨겨져 있고 소리가 나지 않습니다.
  • 그룹 내 동일 출처 프레임의 하위 그룹은 'CPU 집약적'입니다.
  • 그룹은 다음을 할 수 없습니다.
    • 오디오 또는 화상 회의 기능을 제공합니다 (마이크, 카메라, 화면/창/탭 캡처 또는 '열린' RTCDataChannel 또는 '실시간' MediaStreamTrack이 있는 RTCPeerConnection을 사용하여 감지됨).
    • 외부 기기 (Web USB, Web 블루투스, Web HID 또는 Web Serial을 사용하여 감지됨)를 제어합니다.
    • 그룹 외부의 작업을 차단하는 웹 잠금 또는 IndexedDB 연결을 유지합니다.

'CPU 집약적'의 정의는 진화할 수 있지만, 효율적으로 구현된 이메일 또는 채팅 클라이언트나 알림을 생성하는 캘린더 애플리케이션은 제외하는 것이 목적입니다.

동일한 탐색 컨텍스트 그룹 내의 모든 탭을 동시에 동결하면 메시지 작성 또는 사용자 인증 정보 입력과 같은 팝업을 사용하는 앱의 중단을 최소화할 수 있습니다.

사이트를 준비하려면 어떻게 해야 하나요?

사이트에 백그라운드 기능 (예: 알림, 파일 업로드, 콘텐츠 새로고침)이 없는 경우 정지 상태의 영향을 받지 않을 가능성이 높습니다.

사이트에 백그라운드 기능이 있는 경우 백그라운드에서 CPU 사용량을 최소화하여 CPU 집약적인 것으로 간주되어 정지되지 않도록 합니다. 다음은 몇 가지 팁입니다.

또한 정지의 영향을 받지 않도록 백그라운드 기능을 서비스 워커로 이전하는 것이 좋습니다. 서비스 워커는 정지의 영향을 받지 않을 뿐만 아니라 브라우저 리소스도 더 적게 필요합니다. 다음을 사용하는 것이 좋습니다.

사이트는 BackgroundPageFreezeOptOut 오리진 체험판에 참여하여 정지를 선택 해제할 수 있습니다. 중요한 백그라운드 작업을 선언하기 위한 새 API (예: 진행률 알림 API)가 출시되면 이 체험판은 중단됩니다.

chrome://discards에서 탭의 동결 가능 여부를 확인할 수 있습니다. 탭을 정지할 수 있는 경우에도 Chrome 133에서는 CPU를 많이 사용하고 에너지 절약 모드가 활성화된 경우에만 탭을 정지합니다.

다음 단계

백그라운드 탭을 정지하면 전원이 절약되며 이는 에너지 절약 모드를 사용 설정한 사용자에게 매우 중요합니다.

또한 CPU 사용량과 메모리 액세스를 줄여 포그라운드 탭 성능을 개선하고 특히 리소스가 제한된 기기에서 백그라운드 탭 종료를 방지하는 데 도움이 됩니다. 따라서 Chrome에서는 탭 고정을 더 많은 상황으로 확대할 예정입니다(변경사항은 blink-dev@chromium.org에서 공지됨). 백그라운드 사용 사례에 최소한의 방해를 주면서 이를 수행하기 위해 ProgressNotification API와 같은 새로운 API를 사용하면 페이지에서 중요한 백그라운드 작업을 선언하고 정지를 방지할 수 있습니다.