~/ ?.log $
返回文章列表
4 min read

我不知道的 V8 — 系列导读与阅读路径

《我不知道的 V8》系列导读、阅读路径与文章索引。

文章数量: 17 篇


阅读路径

根据不同背景选择入口:

如果想系统学习: 按编号 01 → 17 顺序阅读

如果只关心性能优化: 重点看 01、03、05、06、07、09、10

如果在调试异步问题: 重点看 12、13、14、15


章节目录

第一组:编译与执行流程

#文章核心内容
01从源码到执行:引擎的完整旅程解析→字节码→JIT 完整链路,去优化机制
02函数是如何变得”可调用”的JSFunction 内部结构,[[Call]] 机制,调用栈

第二组:对象与属性存储

#文章核心内容
03为什么字典是”非线性”数据结构线性 vs 非线性,快属性 vs 慢属性,哈希表原理
04隐藏类、快属性与慢属性:对象性能的核心隐藏类演变,Transitions,属性添加顺序的影响
05为什么不建议使用 deletedelete 的内部步骤,隐藏类分裂,替代方案
06prototype 和 proto 的本质区别JSFunction vs JSObject,myNew 实现,原型链查找
07函数内联:TurboFan 最重要的优化手段内联触发条件,调用栈帧结构,去优化
08字典模式下的非线性优化与限制NameDictionary 实现细节,哈希冲突,IC 对字典模式的支持

第三组:作用域与解析

#文章核心内容
09词法作用域与执行上下文:静态与动态的协作LexicalEnvironment,ScopeInfo,闭包与 Context 分配
101 + “2” 为什么等于 “12”:类型转换的底层逻辑ECMAScript 加法规范,ToPrimitive,字节码实现
11惰性解析:V8 如何用”按需编译”提升启动速度PreParser,惰性策略,上下文分配 vs 栈分配

第四组:运行时优化

#文章核心内容
12内联缓存:属性访问如何变成 O(1) 直接读IC 状态(单态/多态/超多态),IC 与 TurboFan 协作

第五组:事件循环与异步

#文章核心内容
13宏任务的调度逻辑:事件循环的主干FIFO 宏任务队列,与渲染的关系,长任务分批
14微任务:执行时机、优先级与底层实现MicrotaskQueue,PerformMicrotaskCheckpoint,queueMicrotask 生产用法
15MutationObserver:以微任务驱动的 DOM 监听异步批量回调,MutationRecord,DocumentFragment 优化
16async/await:状态机、伪协程与微任务调度状态机转换,await 的”暂停”本质,并行优化

第六组:内存管理

#文章核心内容
17垃圾回收:Scavenge、Mark-Sweep-Compact 与增量优化新生代/老生代,复制算法,增量标记,并行 GC

share.ts

// 觉得这篇文章有帮助?

// 欢迎分享给更多人

export const  subscribe  =  "/rss.xml" ;