chrome浏览器开发者工具中sources中的VM+数字

Chrome是一款基于Webkit内核的浏览器。
Webkit原先使用的JS引擎叫做JavaScriptCore,是一种纯粹的解释型引擎,速度较慢(这个慢仅仅相对于后面介绍的V8引擎,但是和同时期流行的Trident内核的IE、Gecko内核的Mozilla进行比较快了不是一点点)。Chromium小组从Webkit代码中fork出一个分支,加入了自己的JS引擎V8,成为了Chrome浏览器。
V8虽然也是解释型引擎,但会对JS代码做一些预编译来产生一些中间码,从源代码中还可以看出,在Interpreter当中还会加入一些汇编进行优化。所以V8引擎的工作原理其实有点类似LUA又有点类似JAVA。
在调试的时候,引擎会生成运行JS CODE的虚拟机,就是调试窗口中看到的VM(Virtual Machine)。由于JS是一种基于环境的运行语言(所有JS代码的基类都是当前环境的GLOBAL类),一旦调试污染GLOBAL,则其他环境变量全部会随之改变。所以每一个VM都是独立于网页也独立于其他VM的虚拟环境,这就是后面所加的数字编号由来。

from:https://zhidao.baidu.com/question/986916279417640619.html

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章