'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 ingee

댓글을 달아 주세요

  1. 조인성스토커 2010.02.12 16:13 신고  댓글주소  수정/삭제  댓글쓰기

    WebKit 엔진에서 Javascript 부분을 공부하고 있는데 질문이 있어서...
    javascript 의 기존 object(window, form etc... )가 아닌
    임의의 object를 추가 하고 싶은데 어떻게 해야되는지 전혀 감이 잡히지 않네요..
    임의의 object를 추가하고 object의 properties랑 method 또한 추가 하려 합나디
    이 블로그에 정리 되어 있는 걸로 해보려 하는데 잘 안되서 이렇게 질문까지 남겨봐요 ㅜ

  2. 2010.02.16 07:09  댓글주소  수정/삭제  댓글쓰기

    비밀댓글입니다

  3. ingee 2010.02.17 17:23 신고  댓글주소  수정/삭제  댓글쓰기

    주인장이 모자라서 별다른 조언은 못드릴것 같습니다. 하지만, 시도하는 주제어가 모두 흥미롭네요. 병렬화, 퍼포먼스 향상...
    웹킷 platform.h 나 config.h 를 뒤져보면 멀티쓰래드에 대한 고려가 담겨 있는 것을 볼 수 있습니다. 해당 파일과 뉴스그룹을 뒤져서 웹킷 엔지니어들이 닦아 놓은 기반이 있는지 확인하시고 작업하는 것이 좋겠습니다.
    작업을 진행하다가 뭐라도 공유할 꺼리가 생기면 댓글/트랙백 등을 통해 동료 엔지니어들을 이끌어주시기 바랍니다. 하시는 일에 성과 있기를 빕니다.

    • 조인성스토커 2010.02.17 17:43 신고  댓글주소  수정/삭제

      제가 수정하고자 하는 것은 custom js object 추가 하는 방법과는 전혀 다른 문제의 것인가요??
      저는 같은 매커니즘인 줄 알고 따라 해보려 계속 시도중인데 실패 하고 있습니다ㅜㅜ

    • 2010.02.17 19:01  댓글주소  수정/삭제

      비밀댓글입니다

  4. 조인성스토커 2010.02.17 19:22 신고  댓글주소  수정/삭제  댓글쓰기

    ...... 비밀댓글로 리플이 달렸는데... 이거 볼수 있는 방법은 뭔가요??ㅋ
    댓글을 꼭 비밀로 보내야 한다면 ...
    죄송하지만 제 메일로 좀 ㅋㅋ
    clfgusxk@nate.com

    • ingee 2010.02.17 19:26 신고  댓글주소  수정/삭제

      'exahz' 님은 JS Object 추가와 다른 주제로 댓글을 다셨습니다. '조인성스토커'님이 궁금해하는 문제와는 거리가 좀 있습니다. 님의 경우에도 주인장의 한계로 구체적인 답변을 드리기는 어렵지만, $/JavaScriptCore/API/JSObjectRef.h 파일의 주석을 정독하면 도움이 되지 않을까 생각합니다. 좋은 성과 이루시기 빕니다.

    • 조인성스토커 2010.02.17 20:50 신고  댓글주소  수정/삭제

      답변 감사 드려요~
      우선 커스텀 js object 추가와는 같은 개념이 맞는건가요?? 커스텀 js object에 가보니 이것도 JSObjectRef.h 파일을 참조하여 만들던데 ;; ㅋ ^^

    • ingee 2010.02.18 07:10 신고  댓글주소  수정/삭제

      "javascript 의 기존 object(window, form etc... )가 아닌 임의의 object를 추가 하는 것"과 "커스텀 JS Object를 추가하는 것"은 같은 일, 맞습니다.

  5. kleeck 2011.12.12 15:20 신고  댓글주소  수정/삭제  댓글쓰기

    안녕하세요
    한가지 궁금한 것이 있어서
    JSC를 기반으로 성능을 개선한 프로젝트가 SFX라고 되어 있고 또 동일하다고 하는데요

    그렇다면은 SFX형태의 JSC를 구할려면은 WebKit 사이트에서 다운받아 jsc로 컴파일 되어 돌아가는
    예제 브라우저들이 SFX 엔진이 적용이 되어 있는건가요?

    궁금해서 글을 남기빈다.

    • ingee 2011.12.12 23:51 신고  댓글주소  수정/삭제

      2010년2월 기준으로 밖에 답변드리지 못합니다. 제 답에 크게 의미 두지 마세요. 다른 좋은 분들이 정확한 답변 달아주시기를 기대합니다.
      JSC는 JavaScriptCore로 WebKitCore와 함께 WebKit 소스의 주요 블럭중 하나입니다. 이부분의 성능을 개선하기 위한 별도의 프로젝트가 SFX였고, 당시(2010년 2월), 별도 개발되던 SFX의 소스가 WebKit에 합쳐졌습니다. 그래서 JSC와 SFX는 동일한 모듈을 지칭하게 됐습니다.

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


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

 (끝)

저작자 표시 비영리 변경 금지
신고
Posted by ingee

댓글을 달아 주세요