Skip to content

浏览器工作原理和v8引擎

1. 课前提要

js应用广泛

js迷惑点(学习重点)

js在浏览器是怎么执行的

我们访问一个网站,域名通过dns解析到对应的ip地址,访问服务器上面的index.html,然后遇到css和js文件先下载在执行

2. 浏览器内核

3. 浏览器渲染过程

4.js引擎

5. V8引擎

用c++编写的google开源高性能js和webassembly引擎,主要用与google浏览器和node等。V8可独立运行,也可以嵌入c++程序。

先解析js,解析包含词法分析和语法分析,然后生成 ast树(https://www.astexplore.net),然后转换成对应的字节码,字节码跨平台的,(要经过汇编再到机器语言)然后v8引擎转换为不同平台的机器指令,cpu执行。

tubofan可以收集类型信息,将收集多次执行的代码存为机器指令。参数的变化是操作变化,与之前的hot字节码不同,他会重新转换为字节码在执行。所以类型的变化会使执行效率下降。

6. v8引擎官方解析图

基于 Obsidian + VitePress 构建