精品国产一级在线观看,国产成人综合久久精品亚洲,免费一级欧美大片在线观看

當前位置:存儲企業(yè)動態(tài) → 正文

谷歌V8 JavaScript引擎引入新解釋器Ignition,旨在減少內存消耗

責任編輯:editor007 作者:David Iffland |來源:企業(yè)網D1Net  2016-08-30 17:04:26 本文摘自:INFOQ

谷歌發(fā)布了新的JavaScript解釋器Ignition,Chrome 53將在一些內存有限的Android設備上使用它。

谷歌資深軟件工程師Ross McIlroy在一篇博文中探討了構建Ignition的原因。

V8目前沒有解釋器。初始執(zhí)行的JavaScript代碼最先被解析,并編譯成一個未優(yōu)化的狀態(tài)。解析器和編譯器的協(xié)同工作機制會導致部分代碼后續(xù)解析兩次、甚至是三次。總之,按照谷歌的說法,V8將33%的頁面啟動時間用在了解析和編譯代碼上。這也導致了大量的內存開銷。

通過使用解釋器,谷歌希望減少當前系統(tǒng)的內存使用。Ignition還是依賴于一個解析器,但JavaScript被編譯成字節(jié)碼,而不是原生代碼。McIlroy表示,“我們[使用Ignition]將代碼編譯成簡潔的字節(jié)碼,而不是編譯成機器碼,大大減少了結果代碼。因此,我們可以減少系統(tǒng)的內存使用,對于不常運行的函數而言尤其如此。”

由于字節(jié)碼較小,所以可以編譯全部源代碼,而不用避免編譯未使用的代碼。也就是說,腳本只需要解析一次,而不是像當前的編譯過程那樣解析多次。

McIlroy還提供了一些技術細節(jié):

Ignition解釋器使用低級的、體系結構無關的TurboFan宏匯編指令為每個操作碼生成字節(jié)碼處理程序。TurboFan將這些指令編譯成目標平臺的代碼,并在這個過程中執(zhí)行低級的指令選擇和機器寄存器分配。Ignition是一個寄存器機,每個字節(jié)碼都將其輸入和輸出指定為顯式寄存器尋址;它不是一個棧式機,每個字節(jié)碼消費輸入,并把輸出推送到一個隱式棧上。

其他瀏覽器供應商已經將使用解釋器作為第一個步驟。Mozilla的SpiderMonkey和微軟的Chakra JavaScript引擎都是一開始就有解釋器,而且它們都是連接到了一個兩層的編譯系統(tǒng)。

從Chrome 53(預計在9月初發(fā)布穩(wěn)定版本)開始,內存為512MB或不足512MB的Android設備將開始使用Ignition。要想深入了解Ignition,請查看谷歌發(fā)布的設計文檔。

查看英文原文:V8's New JavaScript Interpreter Improves Memory Consumption

關鍵字:谷歌Ignition

本文摘自:INFOQ

x 谷歌V8 JavaScript引擎引入新解釋器Ignition,旨在減少內存消耗 掃一掃
分享本文到朋友圈
當前位置:存儲企業(yè)動態(tài) → 正文

谷歌V8 JavaScript引擎引入新解釋器Ignition,旨在減少內存消耗

責任編輯:editor007 作者:David Iffland |來源:企業(yè)網D1Net  2016-08-30 17:04:26 本文摘自:INFOQ

谷歌發(fā)布了新的JavaScript解釋器Ignition,Chrome 53將在一些內存有限的Android設備上使用它。

谷歌資深軟件工程師Ross McIlroy在一篇博文中探討了構建Ignition的原因。

V8目前沒有解釋器。初始執(zhí)行的JavaScript代碼最先被解析,并編譯成一個未優(yōu)化的狀態(tài)。解析器和編譯器的協(xié)同工作機制會導致部分代碼后續(xù)解析兩次、甚至是三次。總之,按照谷歌的說法,V8將33%的頁面啟動時間用在了解析和編譯代碼上。這也導致了大量的內存開銷。

通過使用解釋器,谷歌希望減少當前系統(tǒng)的內存使用。Ignition還是依賴于一個解析器,但JavaScript被編譯成字節(jié)碼,而不是原生代碼。McIlroy表示,“我們[使用Ignition]將代碼編譯成簡潔的字節(jié)碼,而不是編譯成機器碼,大大減少了結果代碼。因此,我們可以減少系統(tǒng)的內存使用,對于不常運行的函數而言尤其如此。”

由于字節(jié)碼較小,所以可以編譯全部源代碼,而不用避免編譯未使用的代碼。也就是說,腳本只需要解析一次,而不是像當前的編譯過程那樣解析多次。

McIlroy還提供了一些技術細節(jié):

Ignition解釋器使用低級的、體系結構無關的TurboFan宏匯編指令為每個操作碼生成字節(jié)碼處理程序。TurboFan將這些指令編譯成目標平臺的代碼,并在這個過程中執(zhí)行低級的指令選擇和機器寄存器分配。Ignition是一個寄存器機,每個字節(jié)碼都將其輸入和輸出指定為顯式寄存器尋址;它不是一個棧式機,每個字節(jié)碼消費輸入,并把輸出推送到一個隱式棧上。

其他瀏覽器供應商已經將使用解釋器作為第一個步驟。Mozilla的SpiderMonkey和微軟的Chakra JavaScript引擎都是一開始就有解釋器,而且它們都是連接到了一個兩層的編譯系統(tǒng)。

從Chrome 53(預計在9月初發(fā)布穩(wěn)定版本)開始,內存為512MB或不足512MB的Android設備將開始使用Ignition。要想深入了解Ignition,請查看谷歌發(fā)布的設計文檔。

查看英文原文:V8's New JavaScript Interpreter Improves Memory Consumption

關鍵字:谷歌Ignition

本文摘自:INFOQ

電子周刊
回到頂部

關于我們聯(lián)系我們版權聲明隱私條款廣告服務友情鏈接投稿中心招賢納士

企業(yè)網版權所有 ©2010-2024 京ICP備09108050號-6 京公網安備 11010502049343號

^
  • <menuitem id="jw4sk"></menuitem>

    1. <form id="jw4sk"><tbody id="jw4sk"><dfn id="jw4sk"></dfn></tbody></form>
      主站蜘蛛池模板: 兴文县| 罗山县| 达孜县| 衡水市| 台安县| 宝兴县| 台中县| 宣城市| 福安市| 乌拉特后旗| 临泽县| 东方市| 淮北市| 枣强县| 开平市| 财经| 乐清市| 鹿邑县| 东乡族自治县| 五家渠市| 潼南县| 旬阳县| 榆社县| 屯留县| 卢湾区| 龙海市| 界首市| 凌源市| 曲周县| 瓮安县| 栾川县| 高平市| 阿克| 龙海市| 历史| 宁安市| 信阳市| 于都县| 樟树市| 喀喇沁旗| 苏州市|