avatar
文章
116
标签
55
分类
7
首页
文章
  • 归档
  • 标签
  • 分类
时间轴
清单
  • 音乐
  • 照片
  • 电影
  • 关于
Small UtopiaClient V8学习
搜索
首页
文章
  • 归档
  • 标签
  • 分类
时间轴
清单
  • 音乐
  • 照片
  • 电影
  • 关于

Client V8学习

发表于2025-09-09|更新于2025-09-18
|总字数:26|阅读时长:1分钟|浏览量:

V8

  • V8-ignition指令
  • V8内存回收机制
  • Code-caching
  • V8 Hole
  • V8指针压缩
  • V8 数据结构
文章作者: Eutopia
文章链接: https://eknight-eutopia.github.io/posts/fda95e8.html
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 Small Utopia!
cover of previous post
上一篇
V8 数据结构
记录下V8的数据结构。 ArrayBuffer用于表示通用的原始二进制数据缓冲区。其为字节数组(bytearray)。不能直接操作ArrayBuffer内容,而是要通过类型化数组对象或DataView对象来操作,它们会将缓冲区中的数据表示为特定的格式,并通过这些格式来读写缓冲区内容。 创建ArrayBuffer123// 创建8字节缓冲区,并使用Int32Array视图引用const buffer = new ArrayBuffer(8);const view = new Int32Array(buffer); 操作ArrayBuffer要操作ArrayBuffer内容,需要使用视图对象。视图对象不存储任何数据,它只是对ArrayBuffer中字节的解释。例如Uint8Array将每个字节视为独立的数字。 123456let buffer = new ArrayBuffer(16);let view = new Uint32Array(buffer);view[0] = 123456;for(let num of view) { console.log(num);...
cover of next post
下一篇
V8-Hole漏洞
对于V8 Hole相关内容的学习V8 Map对象的分析可以看这篇搬运:V8-Map对象 V8源码分析在v8中,JSMap的内存布局如下: Map:每个对象会有的,包含对象属性的shape; FixedArray Length:整个OrderdHashMap的大小 elements:存在的entry的数量 deleteds:删除的entry数量 buckets:buckets数量考虑如下代码:12345678910111213141516171819var map = new Map(); %DebugPrint(map); readline(); map.set(1, 1); map.set(2, 1); map.set(3, 1); map.set(4, 1); %DebugPrint(map); readline(); map.delete(3); %DebugPrint(map); readline(); map.set(5, 1); %DebugPrint(map); ...

评论
目录
  1. 1. V8
©2019 - 2026 By Eutopia
框架 Hexo|主题 Butterfly
搜索
数据加载中