
【V8】
fancy_sky
穿梭代码,体味百态人生
展开
-
V8 Javascript 引擎之所以快
原帖地址: http://blog.jobbole.com/19310/1.针对上下文的Snapshot技术什么是上下文(Contexts)?实际是JS应用程序的运行环境,避免应用程序的修改相互影响,例如一个页面js修改内置对象方法toString,不应该影响到另外页面。chrome浏览器每个process只有一个V8引擎实例,浏览器中的每个窗口、iframe都对应一个转载 2015-02-12 15:04:09 · 1427 阅读 · 0 评论 -
V8之内存管理(二)
原帖地址:http://hi.baidu.com/hycjk/item/c79470d1f35fac95260ae7da四、垃圾回收机制关于内存整理的原理可见: http://hi.baidu.com/hycjk/blog/item/7ebecf95ef90a440d0135e0f.html。 在上述各个空间中分配生成的对象HeapObj转载 2015-02-12 14:47:15 · 1613 阅读 · 0 评论 -
V8之内存管理(一)
原帖地址: http://hi.baidu.com/hycjk/item/f137d2e5616e64b52f140bd7高效的程序离不开内存的有效管理。自己对内存管理的好处不少:减少内存分配、回收开销、避免内存碎片、定位内存位置、方便内存整理、跟踪内存使用等等。V8 的堆内存Heap用于存预编译的code、JS对象内存分配、运行上下文对象分配、垃圾回收等。一、内存的建构(转载 2015-02-12 14:45:18 · 3252 阅读 · 0 评论 -
V8引擎之Binding
继上文ScriptValue ScriptController::evaluate(const ScriptSourceCode& sourceCode)这个函数算是正式脱离webcore进入bingding模块了。先看下这个函数,再分析// Evaluate a script file in the environment of this proxy.ScriptValue Scri原创 2015-03-02 20:41:08 · 1777 阅读 · 0 评论 -
V8引擎之从webcore到V8
这里不想讲什么是V8,请自行百度。自己搞webkit,故以后的V8学习研究都是基于webkit与V8的结合(目前没有研究blink,仅仅是把webkit官方的JavaScriptCore引擎换作了V8),不是纯粹的V8。这里仅介绍从webcore的入口处1.先从webcore的js入口说起,在html词法解析的时候,有一个这个函数:bool HTMLDocumentParser::ca原创 2015-03-02 19:58:27 · 1663 阅读 · 0 评论 -
V8引擎之initContextIfNeeded(...)函数
上篇说到一个很重要的函数initContextIfNeeded,这里专门来分析下这个函数:// Create a new environment and setup the global object.//// The global object corresponds to a DOMWindow instance. However, to// allow properties原创 2015-03-03 14:41:59 · 1063 阅读 · 0 评论 -
在C++中嵌入V8
Handle和垃圾收集handle在v8中,用于记录js对象在堆中的位置。v8的垃圾收集器在收集那些不可到达的内存时,会对堆进行整理。它会移动对象的位置,以达到优化内存的目的。当v8的垃圾收集器移动js对象的位置时,它会同时更新handle的值,让handle能够指向对象新的位置。v 8中有两种handle本地handle (LocalHandle) 。转载 2015-03-11 14:50:32 · 782 阅读 · 0 评论