티스토리 뷰

HowTo - 크롬 시스템 리소스 낭비를 막는 메모리 최적화

 크롬의 장점과 단점의 특징은 매우 극명하게 갈립니다. 장점은 빠른 속도와 다양한 확장 프로그램 지원, 단점은 시스템 리소스, 특히 메모리 점유율이 너무 높다는 것이죠. 따라서 사용자의 하드웨어 성능에 따라 매우 쾌적한 인터넷 환경이 될수도 있고, 인터넷 사용 시 다른 작업(Multi Tasking)을 병행하지 못할수도 있습니다.


 인터넷에는 크롬 메모리 누수 해결을 위한 다양한 팁이 존재합니다. 오늘은 그중에서도 널리 알려지지 않은, 인텔 CPU 사용자를 위해 CPU와 GPU 간의 병렬 처리를 통해 웹 콘텐츠를 보다 빠르게 렌더링하고 시스템 메모리 누수를 막을 수 있는 Zero-copy 설정 방법을 살펴보겠습니다.



 Intel 아키텍처 기반에서 테스트된 내용이므로 AMD 아키텍처에서 성능 향상이 있는지는 확인하지 못했습니다. 이 점 참고해주세요.

Zero-copy texture uploads in Chrome

크롬 브라우저 주소 입력창에 [chrome://gpu] 입력 시 위와 같은 화면이 표시 됩니다. Graphics Feature Status 항목에서 Native GpuMemoryBuffers 기본값은 'Software Only. Hardware acceleration disabled' 입니다. 화면을 아래로 스크롤을 내려보세요.



Compositor Information 항목에서 Tile Update Mode 역시 기본값인 One-copy로 되어 있습니다.



 메모리 누수 및 속도 향상을 위한 설정 변경을 위해 크롬 실험실로 이동합니다. 마찬가지로 크롬 주소창에 [chrome://flags] 입력 후 실험실로 이동되며, 상단의 검색창에서 [zero] 키워드로 검색 시 Zero-copy rasterizer 항목이 표시 됩니다.



※ 해당 설정 항목으로 이동하는 단축키는 chrome://flags/#enable-zero-copy 입니다.


 Zero-copy rasterizer 항목 설정 값을 [Default → Enabled]로 변경합니다.



 설정 변경 시 크롬 하단에 'Chrome을 다시 시작하면 변경사항이 적용됩니다.' 메시지와 함께 [RELAUNCH NOW] 버튼이 표시 됩니다. 이 버튼을 클릭하여 브라우저를 재시작 하거나 수동으로 재시작해주세요.



chrome://gpu 주소로 이동 후 Native GpuMemoryBuffers 항목을 보면 Software only 에서 Hardware accelerated로 변경 되었습니다.



 아래 Compositor information에서 Tile Update Mode가 Zero-copy로 변경되었다면 정상적으로 적용된 것입니다.


 CPU 및 GPU 병렬처리를 위한 설정 방법을 소개한 글 대다수에서 크롬 바로가기에 Zero-copy 활성화 구문을 추가하는 것으로 소개되어 있는데, 크롬 실험실에서 Default 값을 Enabled 시켜주는 것이 조금 더 편리하고 쉽게 적용할 수 있는 방법이라 생각됩니다.



 단순히 크롬 바로가기 파일에 명령어를 입력하는 것이 더 편하다면, 아래 방법을 이용해보세요.


1. 크롬 바로가기 아이콘에서 마우크 우클릭 후 [속성] 선택.

2. [바로가기] 탭에서 대상(T) : C:\Program\Chrome.exe 경로 뒤에 다음 구문을 입력.

3. --enable-native-gpu-memory-buffers --enable-zero-copy




 CPU와 GPU 간의 병렬 처리를 통해 웹 콘텐츠를 보다 빠르게 렌더링하기 위한 방법으로, 특히 이미지나 플래시 등을 로딩할 경우 시스템 메모리에 올린 뒤 VGA 카드의 VRAM으로 복사하는 과정을 생략함으로 속도 향상 및 메모리 누수를 방지하는 효과가 있다고 합니다.


 쉽게 생각해서 CPU → Memory → VRAM → GPU 과정이 있다면, Memory 및 VRAM 이동을 생략하고 CPU ↔ GPU로 단계를 줄인 것으로 이해하시면 됩니다. Raster(이미지를 2차원 배열 형태의 픽셀로 구성, 이 픽셀을 조합하여 일정한 간격의 픽셀들로 하나의 이미지를 표현하는 것) threads를 GPU Memory에 직접 올림으로서 텍스트 위주의 웹 보다 이미지, 플래시, 동영상 등의 동적인 웹에서 체감 효과가 크다고 합니다.


 Intel 벤치마크(상단 이미지) 자료를 살펴보면 software fallback, native one-copy 보다 native zero-copy 적용 시 성능이 빠르고 메모리 사용량도 훨씬 적게 사용하는 것을 알 수 있습니다.


 속도 향상이 있는지 직접 확인하고 싶다면, 다음과 같이 개발자도구를 통해 확인하실 수 있습니다.


1. 크롬 실행 후 Ctrl+Shift+i 키 입력 후 개발자도구 실행.

2. 개발자도구 하단에 Console 창이 없다면, ESC를 눌러 Console 창 표시.

3. Console 창의 왼쪽에 점 세개 아이콘(설정)을 눌러 Rendering 클릭.

4. FPS Meter 체크박스 선택 시 크롬 FPS(성능) 그래프 표시.



 설정 변경 후 실제 테스트를 통해 성능 및 메모리 점유율을 확인해보세요!

댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함