Chrome V8 引擎

Chrome V8 引擎

终极 JavaScript 引擎

历史简介

谷歌为需要大量处理能力的浏览器创建了谷歌地图。当时 JavaScript 的实现还不足以快速运行 Maps。谷歌希望为他们的服务带来更多用户,以便他们可以销售更多广告并赚钱。为此,服务需要快速且稳健。因此,Google 构建了自己的名为 V8 的 Java 脚本引擎,用 C++ 实现,并于 2008 年推出。

让我们看看V8引擎的内部流程。

Google Chrome V8 Engine- Internals Flow

最初,JavaScript 文件进入引擎,然后 ** 解析器** 进行词法分析,将代码分解为标记以识别其含义。这些代币构成 ** AST(抽象语法树)。**

AST 在语义分析中起着至关重要的作用,编译器在其中验证语言元素和关键字的正确使用。稍后,AST 用于生成实际的字节码或机器码。

解释,它是V8引擎的心脏。它使用名为的解释器解释 JavaScript 代码 ** 点火** 以及由名为的 JIT 优化编译器编译 ** 涡轮风扇。**

之前生成的 AST 被提供给解释器,解释器可以快速生成未优化的机器代码,并且可以毫无延迟地开始执行。

探查器 监视代码运行并确定可以执行优化的区域 (例如,一个 for 循环运行 100 次但在每次迭代中产生相同的结果)。 使用此分析器,任何未优化的代码都将传递给编译器以执行优化,生成机器代码,最终替换解释器先前生成的未优化代码中的对应部分。

由于分析器和编译器不断地对字节代码进行更改,JavaScript 执行的性能逐渐提高。

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明

本文链接:https://www.qanswer.top/23506/54271000

posted @   哈哈哈来了啊啊啊  阅读(362)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?
点击右上角即可分享
微信分享提示