揭秘 JavaScript:V8 引擎如何啟動你的程式碼

閱讀時間約 1 分鐘

如果你曾經撰寫過網頁,那你一定接觸過 JavaScript
無論是在 NodeJs 或是瀏覽器中運行。

但你有沒有想過,我們寫下的 JS 程式碼,這些看似單純的英文和符號,是如何被轉化為機器能夠理解和執行的程式呢?

今天,讓我們一起深入了解其中的核心主角
——Google 開發的開源 JavaScript 引擎:V8。
V8 是眾多 JavaScript 引擎中的佼佼者,但今天我們專注於它是如何魔法般地啟動你的程式。

首先,V8 引擎會把我們的 JS 程式碼,這一大串文字,交給解析器。

解析器的工作是找出程式碼中的關鍵元素,如函數名稱、變數宣告等,並將它們組織成一個稱為抽象語法樹(AST)的結構。

這個結構不僅存儲變數和命令,還記錄它們的執行順序,為接下來的處理階段做好準備。

而 AST 將被送到下一個的流程 Ignition 它就像火星一樣負責點燃了引擎,啟動你的程式 它負責將我們的 JavaScript 程式碼編譯成 ByteCode

ByteCode 是一種相當底層的程式語言,它已經相當接近能直接被機器執行的機器語言,基本上這個程式直接丟給 JS 虛擬機,就可以直接 run 起來但這還不夠,快還要更快


V8 引擎設計了第二套系統 TurboFan

TurboFan 會與 Ignition 合作,取得各個 function的執行情況、哪些特別常被執行、哪些 function 型別其實是固定的,並且在進一步的編譯成最快的 MachineCode (最佳化)Ignition 負責啟動程式碼,TurboFan 則負責優化和加速

這兩套系統構建出了一個很強大的特性 【JIT 即時編譯】 既擁有編譯語言的高速,用擁有直譯語言的靈活

這就是 V8 引擎


V8 引擎編譯流程

V8 引擎編譯流程


avatar-img
1會員
3內容數
Ray 貓 - 全端網頁工程師、遊戲開發師 這邊會分享一些科技相關、視覺藝術、前端的最新資訊 - 台灣大學課程網全端工程師 Ziphus 獨立開發者 - 喜歡挑戰也喜歡冒險 電子郵件 ray948787@gmail.com
留言0
查看全部
avatar-img
發表第一個留言支持創作者!
Ray 貓 Realms 的其他內容
本文介紹了 Docker 的基礎概念,以及在軟體工程環境中的運用。藉由 Docker 的容器化技術和映像檔技術,能夠實現開發和生產環境的一致性,並且支持負載平衡和無縫更新。此外,也提到了 Kubernetes 和 Docker Swarm 這兩個重要工具的用途和適用對象。
本文介紹了 Docker 的基礎概念,以及在軟體工程環境中的運用。藉由 Docker 的容器化技術和映像檔技術,能夠實現開發和生產環境的一致性,並且支持負載平衡和無縫更新。此外,也提到了 Kubernetes 和 Docker Swarm 這兩個重要工具的用途和適用對象。
你可能也想看
Google News 追蹤
Thumbnail
這個秋,Chill 嗨嗨!穿搭美美去賞楓,裝備款款去露營⋯⋯你的秋天怎麼過?秋日 To Do List 等你分享! 秋季全站徵文,我們準備了五個創作主題,參賽還有機會獲得「火烤兩用鍋」,一起來看看如何參加吧~
隨著科技的進步,我們在使用智能手機、平板電腦和筆記型電腦等設備時,隱私安全日益受到重視。防窺保護貼是一種常見的隱私保護產品,可以有效防止他人偷窺我們的螢幕內容。在這篇文章中,我們將揭秘防窺保護貼的原理,幫助您更好地了解它如何保護您的隱私安全。 本文將涵蓋以下內容: 防窺保護貼的基本原理 防
Thumbnail
說到日本大阪,從車水馬龍的百貨一級戰區,到充滿力是氣息的街道,各處都充滿了大阪隱藏的魅力,你說大阪住宿該怎麼挑選?AsiaYo聽到你的疑問,特地準備了TOP5大阪飯店清單,給各位參考,希望大家都能找到自己理想的住宿環境。
在快速變遷的商業世界中,了解產品生命週期對企業來說是至關重要的。一個產品從誕生、成長、成熟到衰退的每個階段,都涉及複雜的市場策略和商業決策。本文將深入探討產品生命週期的每個階段,揭示如何通過有效的管理延長產品壽命,並在文章最後引入分鏡表的概念,討論其在產品策劃階段的應用與重要性。
Thumbnail
全球客戶關係管理雲端業者Salesforce成功之處在於打造了客戶成功部門團隊,並將軟體即服務的營運模式獲利最大化。麥肯錫管理顧問公司的研究報告指出「客戶成功學2.0」是企業成長的引擎。本文探討了客戶成功學的重要性以及客戶成功部門的角色。
Thumbnail
1. 富人想著星辰大海,窮人卻想著芝麻綠豆 2. 富人選擇根據時間來獲取報酬,窮人根據付出時間來獲得報酬 3. 富人相信魚與熊掌能兼得,而窮人覺得什麼東西都是稀缺的,不能什麼都要 4. 富人眼里只有機會,窮人眼內只有困難 5. 富人會和積極成功人士交往,窮人則和消極的,不成功的人士交往
Thumbnail
眾所皆知大谷的年薪高得嚇人,隨著他出色的表現數字也是水漲船高,一起來看大谷翔平年薪紀錄吧!
Thumbnail
本文探討關於人類歷史和文明的躍進發展,包含人類的發展速度、社會體制、政治力量、資本和宗教體系等方面對人類生活的影響,同時闡述了人類面臨的挑戰和變遷。
Thumbnail
股市中的每一次波動,對於熱血投資人來說,都是一次探索與征服的機會。但在這條充滿未知的旅途上,如何避開隱藏的陷阱,精準把握追漲的時機,成為了一門需要精密計算的科學,以及一種需要直覺判斷的藝術。三卓的影片【技術分析】短線追漲指南:十年回測結果分析,為您提供了這門科學與藝術的解析。
  朋友们,大家好!今天我们来谈一谈,在第二次世界大战期间被日本海军击沉的英国商船阿斯科特号。阿斯科特号于1944年2月29日在印度洋,被日本海军伊-37潜艇的鱼雷所击沉。现在,让我们来了解一下。   在1944年2月29日上午11时30分,水下的伊-37潜艇向英国总吨位为7005吨的武装
Thumbnail
這個秋,Chill 嗨嗨!穿搭美美去賞楓,裝備款款去露營⋯⋯你的秋天怎麼過?秋日 To Do List 等你分享! 秋季全站徵文,我們準備了五個創作主題,參賽還有機會獲得「火烤兩用鍋」,一起來看看如何參加吧~
隨著科技的進步,我們在使用智能手機、平板電腦和筆記型電腦等設備時,隱私安全日益受到重視。防窺保護貼是一種常見的隱私保護產品,可以有效防止他人偷窺我們的螢幕內容。在這篇文章中,我們將揭秘防窺保護貼的原理,幫助您更好地了解它如何保護您的隱私安全。 本文將涵蓋以下內容: 防窺保護貼的基本原理 防
Thumbnail
說到日本大阪,從車水馬龍的百貨一級戰區,到充滿力是氣息的街道,各處都充滿了大阪隱藏的魅力,你說大阪住宿該怎麼挑選?AsiaYo聽到你的疑問,特地準備了TOP5大阪飯店清單,給各位參考,希望大家都能找到自己理想的住宿環境。
在快速變遷的商業世界中,了解產品生命週期對企業來說是至關重要的。一個產品從誕生、成長、成熟到衰退的每個階段,都涉及複雜的市場策略和商業決策。本文將深入探討產品生命週期的每個階段,揭示如何通過有效的管理延長產品壽命,並在文章最後引入分鏡表的概念,討論其在產品策劃階段的應用與重要性。
Thumbnail
全球客戶關係管理雲端業者Salesforce成功之處在於打造了客戶成功部門團隊,並將軟體即服務的營運模式獲利最大化。麥肯錫管理顧問公司的研究報告指出「客戶成功學2.0」是企業成長的引擎。本文探討了客戶成功學的重要性以及客戶成功部門的角色。
Thumbnail
1. 富人想著星辰大海,窮人卻想著芝麻綠豆 2. 富人選擇根據時間來獲取報酬,窮人根據付出時間來獲得報酬 3. 富人相信魚與熊掌能兼得,而窮人覺得什麼東西都是稀缺的,不能什麼都要 4. 富人眼里只有機會,窮人眼內只有困難 5. 富人會和積極成功人士交往,窮人則和消極的,不成功的人士交往
Thumbnail
眾所皆知大谷的年薪高得嚇人,隨著他出色的表現數字也是水漲船高,一起來看大谷翔平年薪紀錄吧!
Thumbnail
本文探討關於人類歷史和文明的躍進發展,包含人類的發展速度、社會體制、政治力量、資本和宗教體系等方面對人類生活的影響,同時闡述了人類面臨的挑戰和變遷。
Thumbnail
股市中的每一次波動,對於熱血投資人來說,都是一次探索與征服的機會。但在這條充滿未知的旅途上,如何避開隱藏的陷阱,精準把握追漲的時機,成為了一門需要精密計算的科學,以及一種需要直覺判斷的藝術。三卓的影片【技術分析】短線追漲指南:十年回測結果分析,為您提供了這門科學與藝術的解析。
  朋友们,大家好!今天我们来谈一谈,在第二次世界大战期间被日本海军击沉的英国商船阿斯科特号。阿斯科特号于1944年2月29日在印度洋,被日本海军伊-37潜艇的鱼雷所击沉。现在,让我们来了解一下。   在1944年2月29日上午11时30分,水下的伊-37潜艇向英国总吨位为7005吨的武装