크롬 CPU 4배 제한, PC마다 결과가 다른 이유

같은 페이지에 똑같이 CPU 4배 제한을 걸었는데 동료의 노트북에서는 훨씬 느리다. 개발 PC가 달라도 같은 모바일 수준으로 맞추려면 어떻게 할까?

크롬 CPU 4배 제한, PC마다 결과가 다른 이유
세 줄 요약
  • CPU 4배 제한은 현재 PC에 대한 상대 배수다. 다른 PC에 같은 값을 넣어도 같은 성능이 되지는 않는다.
  • Settings의 Throttling에서 보정한 뒤 Performance에서 low-tier 또는 mid-tier를 선택한다.
  • 보정은 모바일 테스트의 출발점이다. 실제 폰의 GPU·메모리·발열까지 복제하지는 않는다.

4배는 휴대전화 모델명이 아니라 내 PC의 감속 비율이다

고성능 PC와 오래된 노트북에 똑같이 4×를 걸어도 동일한 모바일 환경이 만들어지지 않는다. Chrome의 CPU 제한 프로토콜은 값을 감속 배수로 정의한다. 1은 제한 없음, 2는 2배 감속이다. 출발점인 PC의 처리 속도가 다르면 같은 배수를 적용한 뒤에도 차이가 남는다.

원리만 단순화한 가상 예로, 같은 작업이 PC A에서는 10ms, B에서는 30ms 걸린다고 하자. 각각 4배로 늘리면 40ms와 120ms다. 이 계산은 실제 측정 결과가 아니라, 팀원끼리 ‘둘 다 4배 제한’이라는 설정값만 맞춰서는 비교 조건이 같아지지 않는 이유를 보여 준다.

Chrome의 CPU 보정 설명은 Chrome 134부터 개발 PC에 맞는 low-tier·mid-tier 모바일 프리셋을 만들 수 있다고 안내한다. 다른 사람의 배수를 복사하기보다 자신의 PC에서 목표 성능에 맞는 제한값을 구하는 방식이다.

Settings에서 보정하고 Performance에서 적용한다

보정은 Settings → Throttling → CPU throttling presets에서 시작한다. 벤치마크 과정에서 현재 페이지를 잠시 벗어났다가 다시 불러오므로 입력 중인 작업은 먼저 저장한다.

  1. DevTools의 Settings를 열고 Throttling으로 이동한다.
  2. CPU throttling presets에서 Calibrate를 누르고 Continue를 선택한다.
  3. 벤치마크가 끝나면 low-tier·mid-tier용 제한값이 표시된다.
  4. Performance → Environment settings → CPU에서 보정된 프리셋을 선택한 뒤 같은 동작을 기록한다.

공식 설정 문서는 Capture settings에서도 프리셋을 고를 수 있다고 설명한다. 네트워크 속도를 바꾸는 프로필은 별도 설정이다. CPU 값을 맞췄다는 이유로 다운로드 지연까지 같은 조건이 됐다고 판단하면 안 된다.

일반 모바일은 mid-tier부터, 저사양 문제는 low-tier로 넓힌다

Chrome 팀은 일반적인 모바일 성능을 살펴볼 출발점으로 mid-tier를 권한다. 더 느린 기기 사용자에게만 생기는 지연을 찾는다면 low-tier를 추가한다. 두 이름은 특정 iPhone이나 Galaxy 모델을 그대로 재현한다는 뜻이 아니다.

예를 들어 상품 필터를 누를 때 목록이 멈추는 문제라면, 같은 상품 데이터와 필터를 사용해 전후 기록을 비교할 수 있다. 테스트 기록에는 선택한 등급, 실제 표시된 배수, 네트워크 설정을 함께 남긴다. 이는 결과를 다른 개발자가 다시 비교할 수 있게 하는 작업 방식이다.

CPU 제한으로 GPU 프로세스까지 느려지지는 않는다. Chrome의 설명처럼 GPU 효과가 많은 화면은 데스크톱에서 괜찮아도 폰에서 느릴 수 있다. Device Mode 문서 역시 모바일 하드웨어 전체를 시뮬레이션할 수 없다고 명시한다. 폰에서만 재현되는 끊김은 실제 기기로 이어서 검사해야 한다.

CPU 등급을 보고하는 값과 실제 감속을 구분한다

10월 DevTools 업데이트에는 CPU 성능 등급을 CDP로 제어하는 변화도 포함됐다. 자동 테스트를 작성한다면 이름이 비슷한 두 API를 구분해야 한다.

설정직접 바꾸는 대상
Emulation.setCPUThrottlingRate실행을 늦추는 배수다.
Emulation.setCPUPerformanceOverride페이지가 읽는 navigator.cpuPerformance 등급 값이다.

프로토콜에서 두 번째 API는 실험적 기능으로 표시된다. 등급에 따라 효과를 줄이는 사이트의 분기 테스트와, 느린 CPU에서 그 효과가 얼마나 걸리는지 재는 테스트는 서로 다른 설정을 요구한다. 수동 검사에서는 PC별 보정을 먼저 하고, 자동 검사에서는 보고되는 등급과 감속 배수를 각각 확인하는 것이 출발점이다.