V8引擎工作原理

article/2025/8/21 14:39:12

V8引擎工作原理

1.V8引擎是干什么的?

V8的工作是将js代码翻译为CPU指令。

2.V8工作过程
  1. Blink将js源码交给V8引擎

  2. Stream对js源码编码

  3. Scanner进行词法分析,将代码转为token

  4. token转化为AST树

    • Parser将tokens直接转化为AST树
    • PreParser(预编译)
      • 有些代码不是一开始就运行,加载其会影响网站的运行效率,V8利用Lazy Parsing(延迟解析)
  5. AST树通过ignition转化为字节码

  6. 执行代码

V8工作过程

图1 V8工作过程
注释
  • token是什么?

  • Lazy Parsing是什么?

    有些代码不是一开始就运行,将这些代码进行预解析,只解析出需要它的那一部分

    e.g

    function out(){function inner()
    }
    

    这种情况就会对inner进行预解析

  • AST树是什么?抽象语法树,类似于下图的数据结构(与json类似)

Token示例

图2 Token示例

 AST树示例

图3 AST树示例
可以浏览这个网站查看对应程序的AST树和Token

https://esprima.org/demo/parse.html

总结

V8引擎首先对源码进行Parse(解析)生成token,然后对token进行编码生产 AST(Abstract Syntax Tree)抽象语法树,然后AST通过ignition转化为字节码,然后对token进行编码生产 AST(Abstract Syntax Tree)抽象语法树,然后AST通过ignition转化为字节码。


http://chatgpt.dhexx.cn/article/1Ri02Q2V.shtml

相关文章

谷歌v8引擎详解

前言 JavaScript绝对是最火的编程语言之一,一直具有很大的用户群,随着在服务端的使用(NodeJs),更是爆发了极强的生命力。编程语言分为编译型语言和解释型语言两类,编译型语言在执行之前要先进行完全编译&am…

V8 引擎是如何工作的?

作者 | Fundebug 最近,JavaScript生态系统又多了2个非常硬核的项目。 大神Fabrice Bellard发布了一个新的JS引擎QuickJS,可以将JavaScript源码转换为C语言代码,然后再使用系统编译器(gcc或者clang)生成可执行文件。 Facebook为React Native开…

V8 JS引擎

一. Google开发V8 Google (丹麦)研发小组在 2006 年开始研发 V8 ,部分的原因是 Google 对既有 JavaScript 引擎的执行速度不满意, 在2008年推出chrome, 巨大的速度优势, 迅速占领市场. 2017年chrome的市场占有达到59%. 二. 常见JS引擎 JScript(IE6,IE7, IE8) …

前端深度之Chrome的V8引擎内存详解

内容:V8引擎、JS内存管理、V8引擎如何回收垃圾、如何查看V8内存使用情况、内存优化实例 目录 一、V8引擎是什么? 二、内存 2.1、内存生命周期:(这个不同的程序语言基本一样) 2.2、JavaScript的内存管理 2.3、为什…

linux硬盘格式改为xfs,如何给Linux系统配置XFS文件系统

现在的系统基本都配备了XFS文件系统,XFS文件系统因其优秀且功能丰富而使用的人数很多,下面小编就给大家介绍下Linux下如何配置XFS文件,给想要配置XFS的朋友做个参考。 一、XFS文件系统简介 主要特性包括以下几点: 数据完全性 采用XFS文件系统,当意想不到的宕机发生后,首先…

xfs_growfs

LVM扩容 1 检查当前使用情况 df -h lvs vgs 2 在线扩容/opt lvextend -L 100GB /dev/mapper/VolGroup-opt xfs_growfs /dev/mapper/VolGroup-opt 3 扩容后检查 lvs df -hdf -hT lvslvextend -L 100GB /dev/mapper/VolGroup-optxfr_growfs /dev/mapper/VolGroup-optdf -hT # xf…

linux7xfs,RHEL7--XFS FileSystem

XFS 介绍 在RHEL7中,把XFS作为一种高可用性,高扩展性的文件系统已经列为默认的首先文件系统类型 XFS支持元数据日志记录,支持在线的扩容和整理. 可用采用 mkfs.xfs device 来进行格式 XFS Quota Management xfs能够汇报出在用户&#xff0c…

时代催生枭雄——XFS应运而生

站在人类发展进程的角度,全球新冠肺炎疫情大势横行,促进了百年未有之大变局加速演变,全球原有格局打破,新型的世界秩序正在重塑,世界又站在了历史的十字路口。 中国经济的发展需要良好的营商环境,对虚拟货…

Linux之XFS文件恢复

xfs类型文件备份恢复 我们使用的centos 7 默认使用的是xfs 类型文件系统,可以用xfsdump 与 xfsrestore 工具进行备份恢复。 xfsdump 的备份级别:0 :表示完全备份。1-9 表示增量备份。xfsdump 的备份级别默认为0。 xfsdump 的命令格式&…

xfs mysql_XFS文件系统与mysql应用性能测试

XFS 最初是由 Silicon Graphics,Inc. 于 90 年代初开发的。那时,SGI 发现他们的现有文件系统(existing filesystem,EFS)正在迅速变得不适应当时激烈的计算竞争。为解决这个问题,SGI 决定设计一种全新的高性能 64 位文件系统&#…

关于XFS文件系统概述

前言: 目前XFS已成为Linux主流的文件系统,所以有必要了解下其数据结构和原理。 XFS文件系统 XFS是一个日志型的文件系统,能在断电以及操作系统崩溃的情况下保证数据的一致性。XFS最早是针对IRIX操作系统开发的,后来移植到linux上,目前CentOS 7已将XFS作为默认的文件系统…

XFS 文件系统 (一) :设计概览

文章目录 0 前言1 设计背景2. 需要解决的问题2.1 异常恢复太慢2.2 不支持大文件系统2.3 不支持大型稀疏文件2.4 不支持大型连续文件2.5 不支持大目录2.6 不支持过多文件个数 3 XFS 架构4 痛点解决4.1 Allocation Groups4.2 Manging Free Space4.3 大文件的支持 5 总结 0 前言 …

linux常见实战(一)--【基于centos7的磁盘操作(新磁盘挂载/已有磁盘扩容)】

文章目录 前言:磁盘与文件系统1.xfs2.ext4 一、新磁盘的挂载1.查看已挂载磁盘情况2.查看所有磁盘情况3.给新磁盘分区4.格式化磁盘5.挂载磁盘6.设置开机自动挂载7.测试重启后挂载状态 二、对已有磁盘进行扩容1.查看磁盘挂载情况、分区情况2.进入磁盘进行分区操作3.格…

更快更好的Linux文件系统:XFS

XFS一种高性能的日志文件系统,最早于1993年由Silicon Graphics为他们的IRIX操作系统而开发,是IRIX 5.3版的默认文件系统。2000年5月,Silicon Graphics以GNU通用公共许可证发布这套系统的源代码,之后被移植到Linux 内核上。XFS极具…

Centos7使用

目录 一.材料准备 二.安装VM 三.创建虚拟机 四.进入CentOS安装界面 五、最小化必要的一些工具 一.材料准备 1.VMware-workstation 16版本 2.CentOS-7 64位光盘映像文件 二.安装VM 略 三.创建虚拟机 1.打开VMware Workstation,点击创建虚拟机 2.选择自定义…

CentOS7安装MySQL8

文章目录 一 前言二、Centos 7 安装 mysql8 步骤:1.下载MySQL官方的 Yum Repository2.安装方法一: 用wget 下载后安装方法二:下载 RMP 软件包将该软件包上传到 Linux 服务器,并安装。 3.Navicate 远程连接配置 一 前言 最近在自己…

CentOS7的安装流程

CentOS7的安装流程 1、 环境准备 安装VMware 下载Centos7镜像文件 2、 CentOS7安装流程 步骤一:打开VMware,点击创建新的虚拟机 步骤二:选择典型安装,点击下一步 步骤三:选择稍后安装操作系统,点击…

centos7安装教程

centos7安装教程:首先下载“CentOS-7-x86_64-bin-DVD1.iso”镜像文件;然后依次选择“文件->新建虚拟机->自定义”;接着根据向导进行虚拟机的创建;最后进入CentOS安装界面并进行安装设置即可。 本文操作环境:cent…

Linux-CentOS7安装教程【附CentOS7镜像】

Linux-CentOS7安装教程【附CentOS7镜像】 1. 新建虚拟机 点击“创建新的虚拟机” 点击“下一步” 选择“稍后安装操作系统”,点击“下一步” 选择"CentOS 7 64",点击“下一步” 起一个虚拟机名字,设置一个合适的安装位置&#xf…

CentOS7安装git

CentOS7安装git 前言一、git介绍二、使用yum安装git1.安装git2.查看git版本3.移除git 三、源码包安装git1.安装依赖2.下载源码包3.解压4.git安装5.查看git版本 总结 前言 CentOS7安装git,刚开始使用yum安装git,发现安装的版本默认是1.8.3.1,…