본문 바로가기

카테고리 없음

Chrome 1: Browser Architecture

https://developer.chrome.com/blog/inside-browser-part1/

 

최신 웹브라우저 들여다보기 (1부)  |  Blog  |  Chrome for Developers

브라우저가 코드를 개략적인 아키텍처에서 구체적인 렌더링 파이프라인에 이르기까지 제대로 작동하는 웹사이트로 변환하는 방법을 알아보세요.

developer.chrome.com

 

Glossary

  • CPU
  • GPU
  • Process
    • applicaton’s executing program
  • Thread
    • lives inside of process
    • execute any part of its program
  • IPC (InterProcess Communication)

브라우저 아키텍처

  • Browser process
    • 여러 프로세스들의 조율자
    • 주소창, 북마크, 네트워크 요청, 파일 접근 등 ‘크롬’의 역할 수행
  • Renderer process
    • 우리 눈에 보이는 웹사이트
    • 최소 탭별로 1개의 프로세스
    • iframe 등이 있을 경우 사이트마다 1개의 프로세스를 주도록 노력함
  • Plugin process
    • flash 등 플러그인 하나를 관리
  • GPU process
    • GPU는 크롬뿐이 아니라 다른 여러 프로그램의 요청들을 다 수행함
  • Extension process
  • Utility process

크롬의 멀티프로세스 아키텍처

장점

  • 안정성
    • 탭별로 렌더러 프로세스가 있음 → 한 탭이 고장나도 나머지는 멀쩡
  • 보안이 좋음
    • OS에서 프로세스의 권한을 조종하는 기능 제공
    • 브라우저가 프로세스별로 특정 기능을 허용하거나 제한할 수 있음 (파일접근 등)

단점

  • 메모리 이슈
    • 프로세스별로 고유 저장소를 지님 → V8 같은 common 값들은 프로세스마다 중복되어 저장
    • 해결: 최대 프로세스 개수에 제약
    • 해결: 최대치 도달 시 같은 사이트의 탭은 하나의 프로세스로 통합시킴

Servicification

정의

The transformation or encapsulation of existing processes or systems into one or more discrete services

장점: 메모리 절약

  • 고성능 기기
    네트워크, 브라우저, UI, 스토리지, … 등 여러 개의 프로세스로 나누어 안정성 UP
  • 저성능 기기
    이런 프로세스들을 브라우저 프로세스 하나로 합쳐서 메모리 절약

Site Isolation

  • 2018
  • runs a separate renderer process for each cross-site iframe
  • 다른 사이트는 다른 프로세스에서 돌림으로써 Same Origin Policy를 지켜주기 위함