Showing posts with label v8. Show all posts
Showing posts with label v8. Show all posts

Thursday, October 6, 2011

v8 + llvm

無意中發現了一個v8+llvm的project
Sanjo JS engine
http://www.brrian.net/js/Project_Home.html

他其實是Purdue的某個graduate class裡的project
http://web.me.com/vitekj/565s10/Welcome.html

裡面的resource都project都蠻不錯的
大部分都在作js 的engine
http://code.google.com/p/unladen-swallow/wiki/RelevantPapers
http://web.me.com/vitekj/565s10/Projects.html

不過好像大部分都沒open source就是了..

Friday, October 15, 2010

在v8的javascript file加log

最近發現v8一直死在從native call javascript function call的時候一直死掉
苦無log可尋

可以想學 d8.cc中 create 一個 FunctionTemplete 來印
可是後來發現  其實runtime.cc 中有一個Runtime_Log  function就可以用了

不過要先把log_runtime 的option 打開
跟define  ENABLE_LOGGING_AND_PROFILING

不過還不確定詳細的功能就是了

簡單的印log就
%Log('hello', [""]);

要用c的printf   後面是 valist那種  後面的js array還不知道怎麼用就是了

Saturday, June 6, 2009

V8 javascript engine

http://code.google.com/events/io/sessions/V8BuildingHighPerfJavascriptEngine.html

在V8 Memory Model 那頁
他用了tagged pointers
因為object都是4 byte aligned 的 所以bit 0 1都沒有東西
所以這兩個bit就會被設為01 來代表這是個pointer

而如果是一般的integer時 bit 0會被設為0
只有31bit來代表 signed integer
所以integer 就是 2^30 - 1 ~ -2^30
不過這ok嗎????

然後Elements Pointer是在幹嘛的?

-----------------------------------
接下來在Hidden class的介紹
Properties的pointer 指到一個buffer 這buffer是多大呢???
然後在p2 construct的時候
使用hidden class的design decision? 90%的數據是怎麼來的
會不會這時class 0 1已經被GC掉了? 如果被GC重新construct的話 最後p2還會指到class 2嗎
還是會指到class 3 但class 3跟class 2的content 是一樣的

在video最後面有人問到說如果p2 是先constuct y再x的話 p2 跟p1會是一樣的嗎?
答案是不一樣的 雖然他們的內容是一樣 只是順序不同
他們還是兩個不同的class

-----------------------------------
接下來在Monomorphic load inline cache
好像是intel syntax?
一開始 compare 這是個pointer or integer
然後比這class的pointer
如果都一樣的話就load properties 來達到fast property access的功能

不過megamorphic好像沒講到太多


------------------------------------
接下來講GC
generational

但又分三種
  • Scanenge
  • Full non-compact GC
  • Full compact GC
不過young / old generation 的大小要怎麼決定呢
另外與其他JavaScriptCore or Java的GC有什麼不同呢
每個人的GC都說是棒呆了
----------------------------------
RE

Webkit跟V8在String 上的 implementation哪不一樣造成JSCRE 的performance不好

The implementation of automaton to recognize RE