이 가이드는 크롬 속도, 메모리 최적화를 위한 Zero-copy 설정 방법에 대해 설명합니다.
크롬 브라우저는 확실히 장단점이 뚜렷한 편입니다. 빠른 속도와 다양한 확장 프로그램의 지원에 대한 부분은 단연 돋보이지만, 메모리 사용량이 높은 점은 많은 사용자에게 질타 받고 있습니다.
그래서 크롬 브라우저는 사용자의 하드웨어 사양에 따라 인터넷 체감 속도가 달라질 수 있습니다.
성능 좋은 시스템에서는 쾌적하게, 사양이 낮은 시스템에서는 다른 작업과 병행이 어려울 정도로 속도 저하 현상이 발생하기 때문에 크롬 메모리 최적화를 위한 다양한 팁이 존재합니다.
예를 들어 사용자가 적극적으로 사용하지 않는 탭을 자동으로 비활성화 하는 ‘메모리 절약’ 모드, 열려있는 모든 탭을 한 번에 저장하고 닫은 뒤, 다시 사용할 수 있는 ‘모든 탭 북마크’를 활용하기도 합니다.
그러나 시스템 환경 및 사용 습관에 따라 메모리 누수, 성능 저하에 대한 문제는 늘 함께합니다.
크롬 메모리 최적화 작업 Zero-copy Rasterizaion 설정 방법
오늘 소개할 ‘Zero-copy Rasterization’ 기능은 2016년, 이미 오래전 Intel에서 자사 아키텍처의 Chrome OS에 대해 ‘native one-copy texture uploads’ 기본 활성화 소식을 전하며 알려졌습니다.
크롬의 기본 설정인 ‘One-copy Rasterizaion’ 모드와 비교해, 대용량 파일을 나누는 작고 관리하기 쉬운 영역인 타일을 변경할 때마다 GPU 메모리에 직접 기록하는 방식으로 ‘Zero-copy’ 방식은 동적인 웹 콘텐츠를 보다 빠르게 렌더링 할 수 있습니다.
01 Chrome ‘Zero-copy rasterizer’ 플래그 활성화
Zero-copy 기능을 활성화하면 Raster(정사각형 모양의 픽셀이 모자이크처럼 모여 만든 이미지) threads가 타일과 관련된 GPU 메모리에 직접 기록합니다.

크롬 브라우저 주소 창에 다음 경로를 입력하고 Enter 키를 눌러 이동합니다.
chrome://gpu
Compositor Information 항목에서 ‘Tile Update Mode’ 기본 값은 “One-copy” 입니다.
이제 크롬 플래그 설정을 변경하여 Tile Update Mode를 변경합니다.
STEP 01. 크롬 Zero-copy 플래그 설정

크롬 브라우저 주소 창에 다음 경로를 입력하고 Enter 키를 눌러 이동합니다.
chrome://flag
상단의 검색 창에 “Zero-copy rasterizer” 검색 후 해당 플래그 값을 [Enabled]로 변경합니다.
🔦 참고 : 주소 표시줄에 "chrome://flag/#enable-zero-copy" 경로로 이동하여, 해당 플래그 설정으로 직접 이동할 수도 있습니다.

변경된 설정은 브라우저를 다시 시작할 때 적용됩니다.
크롬 플래그 설정 변경 후 하단에 표시되는 [다시 시작] 버튼을 클릭하거나, 수동으로 다시 시작합니다.
STEP 02. Tile Update Mode 확인

크롬 브라우저 주소 창에 다음 경로를 입력하고 Enter 키를 눌러 이동합니다.
chrome://gpu
스크롤을 아래로 내려 Compositor Information을 찾습니다.
‘Tile Update Mode’ 항목이 “Zero-copy” 값으로 표시되면 정상적으로 적용된 것입니다.
STEP 03. Zero-copy 설정 후 성능 테스트

Zero-copy rasterizer 플래그 활성화 후 사용자 시스템에서 메모리 누수 및 속도 문제가 개선되었는지 확인하려면 크롬 개발자 도구를 활용합니다.
단축키 Ctrl + Shift + I 키 또는 F12 키를 눌러 크롬 개발자 도구를 엽니다.
- 크롬 개발자 도구 하단에 “콘솔” 창이 보이지 않는 경우 ESC 키를 눌러 창을 표시합니다.
- 하단 콘솔 창에서 [ ⁝ ] 버튼을 클릭하고 “렌더링” 옵션을 선택합니다.
- 렌더링 옵션 목록에서 “프레임 렌더링 통계” 옵션을 찾아 선택, 활성화합니다.
화면에 표시된 프레임 렌더링 통계 그래프를 통해 Frame ratio, GPU memory 값을 확인합니다.
02 Zero-copy rasterizer 만능일까?
일반적으로 이미지나 영상 등 웹 콘텐츠를 처리할 때 기존 데이터의 흐름과 Zero-copy 적용 후 데이터 흐름 차이를 이해하기 쉽게 단순화하면 다음과 같습니다.
- One-copy : CPU ➜ Memory ➜ VRAM ➜ GPU
- Zero-copy : CPU ➜ GPU
즉, 이미지나 영상 등 웹 콘텐츠를 화면에 표출할 때 이를 시스템 메모리에 올리고 그래픽 카드의 VRAM으로 복사하는 과정을 생략함에 따라 크롬 속도를 상당히 빠르게 만들 수 있습니다.
따라서 타일을 변경할 때마다 텍스처를 GPU에 업로드하는 비효율적인 프로세스를 최소화합니다.
래스터화1는 이전과 같은 방식으로 수행되지만 타일을 변경할 때마다 텍스처를 수동으로 복사하는 대신 GPU에 주 메모리에 텍스처 위치를 메모리 매핑하도록 지시하여 GPU가 직접 읽을 수 있도록 합니다.
이 기능을 통해 크롬 성능이 향상되고 노트북 등 휴대용 장치에서는 기기의 배터리 수명이 크게 늘어나는 효과도 얻을 수 있죠.
Intel® Case별 Zero-copy rasterizer 성능 비교

Intel 벤치마크2 자료를 살펴보면 Zero-copy rasterizer 적용 시 Software fallback, Native one-copy 대비 성능이 빠르고 메모리 사용량도 훨씬 적은 것을 확인할 수 있습니다.
- Dynamic draw case : Zero-copy는 Software fallback보다 약 67%~114% 빠르고 One-copy는 Software fallback보다 4%~31% 빠릅니다.
- Static draw case : Zero-copy는 GPU 캐시 미스로 인해 One-copy와 Software fallback보다 0%~27% 더 느립니다 . One-copy는 두 방법 모두 최종 텍스처로 일반 텍스처를 생성하기 때문에 Software fallback과 동일한 성능을 보입니다.
🔦 참고 : 위 결과는 Intel 내부 분석을 통해 측정 되었으며, 하드웨어, 소프트웨어 등 구성의 차이에 따라 실제 성능에 영향을 미칠 수 있습니다.
Zero-copy는 동적 환경에서 가장 좋은 성능과 효율을 보이지만, 정적인 환경에서는 오히려 One-copy를 사용하는 것보다 느릴 수 있으며, 간혹 크롬 브라우저를 불안정하게 만든다는 보고도 있습니다.
이러한 이유로 다양한 하드웨어 환경을 고려해야 하는 범용성을 위해 크롬은 One-Copy Texture Uploads 방식이 기본 값으로 설정되어 있습니다.
그러나 Zero-copy 설정 이후 크롬의 메모리 최적화 및 웹 속도 향상이 눈에 띄게 증가하는 것을 체감할 수 있으므로, 꼭 사용해보실 것을 권장 드립니다.
One-copy, Zero-copy 병행 사용 ‘크롬 바로 가기’ 옵션 설정
크롬 브라우저가 불안정해지는 것이 염려되거나, 동적·정적 웹 환경에서 두루 두루 사용해야 한다면, 크롬 바로 가기에서 대상 경로에 옵션을 추가하여 병행 사용하는 것도 좋은 방법입니다.

- Chrome 바로 가기 아이콘 마우스 오른쪽 버튼 클릭 후 [속성] 옵션 선택.
- Chrome 속성 창의 [바로 가기] 탭에서 “대상(T)” 주소 뒤에 다음 경로 입력.
- –enable-native-gpu-memory-buffers –enable-zero-copy
예시) "C:\Program Files\Google\Chrome\Application\chrome.exe" --enable-native-gpu-memory-buffers --enable-zero-copy
- 래스터화(Rasterisation 또는 Rasterization) : 벡터 그래픽 형식으로 설명된 이미지를 래스터 이미지(이미지를 2차원 배열 형태의 픽셀로 구성, 이 픽셀을 조합하여 하나의 이미지로 표현)로 변환하는 작업. ↩︎
- 출처 : Intel Native One-copy Texture Uploads for Chrome* OS on Intel® Architecture Enabled by Default ↩︎
마치며
Zero-copy는 메모리 소비 측면에서 매우 유리합니다. Software fallback에 비해 Zero-copy는 약 65% 낮고, Render process에서 메모리 소비는 Zero-copy가 약 20% 낮습니다.
One-copy Texture Uploads는 스테이징 버퍼에서 사용되는 GPU 프로세스의 Zero-copy보다 약간 더 많은 메모리를 소비합니다.
Zero-copy는 전력 소모 측면에서도 상당히 유리합니다. GPU 프로세스는 Zero-copy를 위해 텍스처 업로드 작업을 수행할 필요가 없으므로 전력 사용이 35% 절약됩니다.
정리하면 Intel 테스트 사례를 통해 알려진 것처럼 Zero-copy가 67%에서 114% 사이의 성능 향상, 55%의 메모리 절약, 35%의 전력을 절약 할 수 있다는 것을 알 수 있습니다.

