文章
116
标签
55
分类
7
首页
文章
归档
标签
分类
时间轴
清单
音乐
照片
电影
关于
Small Utopia
Client 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
!
上一篇
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);...
下一篇
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.
V8
搜索
数据加载中