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

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