'JavaScriptCore'에 해당되는 글 2건

  1. 2009.12.30 JavaScriptCore 현황 (2009/12/30 기준) 11
  2. 2009.08.12 JavaScriptCore 관련 클래스 다이어그램

JavaScriptCore 현황

(JSC SquirrelFish, SFX의 관계에 관해)

 

 

요약

l  SquirrelFish SquirrelFishExtreme(SFX) JavaScriptCore의 아키텍처를 개선하여 실행성능을 향상시킬 목적으로 WebKit 엔지니어들이 시작한 프로젝트의 코드네임

n  SquirrelFish bytecode VM 방식을 구현하기 위해 시작한 프로젝트

n  SFX (SquirrelFishExtreme) native code JIT 방식을 구현하기 위해 시작한 프로젝트

l  2008 6 SquirrelFish WebKit SVN trunk에 통합됨

n  (SquirrelFishWebKit SVN main trunk에 통합된) 현재 상황에서 JSC SquirrelFish, SFX는 동일함

l  현재 Linux ARM JIT는 지원하나 WinCE ARM JIT는 지원하고 있지 않음

 

 

WIKI 백과 중에서
http://en.wikipedia.org/wiki/WebKit#JavaScriptCore

l  2008/6/2 WebKit 프로젝트가 JavaScriptCore“SquirrelFish (bytecode interpreter)” rewrite 했음을 발표함

l  2008/9/18 x86 JIT (SFX: SquirrelFishExtreme)를 발표함

l  2009/1 Mac OSX on x86-64 JIT 발표함

 

 

뉴스그룹 중에서

2008/5/18/공지
http://old.nabble.com/The-SquirrelFish-Cometh-to17298445.html#a17298445

l  기존 JavaScriptCore AST 기반 인터프리터였다. 성능에 관한 아키텍처적 문제가 있었다

l  그래서 bytecode VM 아키텍처의 SquirrelFish 프로젝트를 시작했다

l  별도의 SVN repository에서 작업을 진행했으나 조만간 main trunk에 통합할 것이다

 

2008/6/98/질문: WebKitGtk 최신 소스에 SquirrelFish JS-engine이 적용되어 있는가?
http://old.nabble.com/Get-SquirrelFish-for-Webkit-in-linux-to17724999.html#a17724999

ð  2주전에 merge됐다.

 

2008/6/13/공지
http://old.nabble.com/JavaScriptCore-directory-reorganization-to17816031.html#a17816031

l  SquirrelFish가 완료되어 SVN trunk JavaScriptCore 디렉토리를 변경한다

 

2008/12/24/질문: SFX non-x86 JIT를 지원하는가?
http://old.nabble.com/SquirrelFish-Extreme-for-non-x-86-platforms-td21159116.html

ð  JIT는 아직 x86만 지원한다

ð  JIT를 기타 CPU로 포팅하는 것을 고려 중이다

ð  JITbytecode 모델보다 효율적일지 판단 중이다. JIT는 메모리를 압도적으로 많이 사용한다

 

2009/12/11/질문: WinCE JIT 어찌되어 가나?
http://old.nabble.com/JIT-on-Windows-CE-to26740395.html#a26740395

ð  개발 중이다.

 

 

 

(이상입니다.)

 


Posted by ingeeC
,
JavaScriptCore를 변형해 쓰기 위해 분석하고 있다. 다음은 JSC에 관한 간단한 클래스 다이어그램이다. 웹킷을 사용하는 엔지니어들에게 도움이 되면 좋겠다.


다음은 JSC관련 객체들의 라이프사이클에 관한 메모이다.
  • WebCore::JSDOMWindow 인스턴스는 (다시 말해 JSC::JSGlobalObject 인스턴스는) 페이지를 새로 로드할 때마다 새로 만든다.
  • JSC::GlobalData 인스턴스는 application과 life-cycle을 같이 한다 (즉, 한번 만들면 어플리케이션을 종료시킬 때까지 같은 놈을 사용한다).

 (끝)

Posted by ingeeC
,