Re: (필독!^^) How browser works 번역본!

(Opera 15+/Chromium/Blink에 한정된 내용입니다만)

언급이 안된 내용이 있어서.. 스레드 관련해서 조금 부연한다면…  

V8의 경우 Isolate라는 기능을 이용해서 단독으로 실행이 가능한 프로그램의 경우
(e.g. functional program, out-of-context code, worker) 별도 스레드로 돌릴 수
있는 재미있는 기능이 있습니다. (Carakan이나 AVM2 같은 경우 이런 프로그램의
경우에도 real thread가 아닌 pseudo thread로 실행을 합니다. 장단점이 있습니다만..)

1. Web Worker의 경우 V8 Isolate 기능을 이용하여 개별 스레드로 동작합니다.
(준 native급으로 동작하는것 같아 [1] 스레드를 미친듯이 생성하는 테러가 가능할것
같은 기분이 들어 확인해보니 역시나 가능하군요. 웹 기술은 정말 막강합니다 […])

2. HWA compositing도 별도 스레드로 합니다. (threading overhead가 큰 환경
CSS transition 같은 기능이 한박자 늦게 도는걸 볼 수 있습니다. translatez(0)이
마냥 좋은게 아니라는 증거이기도 하구요..)

3. Chromium 28 이후로 [2] threaded HTML parsing을 합니다. (웹페이지 로딩 중
파싱과 트리 생성에 소모되는 시간을 감안하면 얼마나 의미가 있는지는 개인적으로는
솔직히 모르겠습니다만, 아무튼 그렇습니다.)

아울러 extension framework에서도 (1)과 같은 형태로 사용을 하는걸 본것 같은데 이건
제가 손대지 않는 분야라 내용이 정확하지는 않습니다.

대단히 매력적인 기능이지만 node.js에서는 in process forking (child_process.fork()
를 프로세스가 아닌 스레드로 실행시키는 기능) 기능 때문에 이전에 지원을 하다가 지원을
중단한걸로 알고 있는데요, 제가 안써서 이후에 다시 지원을 시작했는지는 모르겠습니다.

--  
Sangwhan Moon (@sangwhanmoon)

[1] http://sangwhan.com/workertest/
(Opera 15+, Chromium 기준 스레드 600개 이상을 생성하고 CPU 사용량을 끝까지
땡깁니다. 추운 겨울을 나는데에 도움은 되겠지만 클릭 후 책임은 제가 안집니다.)

[2] https://groups.google.com/a/chromium.org/forum/#!topic/chromium-dev/hBUVtg7gacE  

On Tuesday, December 24, 2013 at 1:39 PM, Wonsuk Lee wrote:

> 안녕하세요.  
>  
> 아직 못보신 분들이 계실 것 같아서 공유합니다~^^ 브라우저의 내부 동작구조에 대해서 궁금하신 분들은 꼭 한번 필독하세요~ 내용 중에 궁금하신 부분은 mailing list로 질문주세요~^^  
>  
> http://helloworld.naver.com/helloworld/59361
>  
> 이원석 드림.
> =========================================
> 이 원 석 (Wonsuk, Lee) / Principal Engineer, Ph.D
> SAMSUNG ELECTRONICS Co., LTD. (三星電子)
> Mobile: +82-10-5800-3997
> E-mail: wonsuk11.lee@samsung.com (mailto:wonsuk11.lee@samsung.com), wonsuk73@gmail.com (mailto:wonsuk73@gmail.com)
> http://www.wonsuk73.com/, twitter: @wonsuk73
> -----------------------------------------
> Inspire the World, Create the Future !!!
> =========================================  

Received on Tuesday, 24 December 2013 16:13:55 UTC