在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
另外與其他JavaScriptCore or Java的GC有什麼不同呢
每個人的GC都說是棒呆了
----------------------------------
RE
Webkit跟V8在String 上的 implementation哪不一樣造成JSCRE 的performance不好
The implementation of automaton to recognize RE
1 comment:
I am really impressed with your writing skills as well
as with the layout on your weblog. Is this a paid theme or did you customize it yourself?
Anyway keep up the nice quality writing, it is rare to see a great
blog like this one nowadays.
My webpage - home cellulite treatment
Post a Comment