mirror of
https://github.com/pjh456/OxideJS.git
synced 2026-10-24 02:31:13 +08:00
fix: 深层分配公式改全量重算消除对象堆数据双计
深层采样层不再以手工账目为 base 叠加逐对象堆数据重算,改为对象、串、 BigInt 表长、cell 表长四分量各按当前值计一次、互不相交,消除存活对象 堆数据整份双计;bench 留存说明的账目成分列举与 run 边界 doc 措辞同步 改现语义,公式单测夹具补带元素向量的对象,钉深层与轻层零增长逐位相等。
This commit is contained in:
@@ -15,11 +15,12 @@ const MEMORY_BENCH_NOTES: &str = "\n内存基准用例(mem_*):\n
|
||||
mem_map_retain 原生盒边持有:Map 持 20000 组字符串键 + 对象值
|
||||
mem_set_retain 原生盒边持有:Set 持 20000 个对象(各带 payload 字符串)
|
||||
mem_string_rope 拼接 rope 链留存:重复二元拼接形成深 Cons 链(账目按逻辑长度计,数值高于实际足迹)
|
||||
口径:Peak B/Ret B 为 session 堆账目(对象头 + 堆数据 + 存活串/BigInt);epoch arena
|
||||
的临时驻留不计入字节账目(数量见 JSON 的 epoch_objects)。Peak B 为顶层指令
|
||||
边界采样的 session arena 高水位;单指令内瞬态与 epoch 高水位不计。Ret B 为 workload 后
|
||||
晋升 + 完整 GC 的真存活集,至多含一份引擎内部副本:逃逸屏障留 epoch 原件且顶层
|
||||
寄存器根不回写时,测量时晋升会把原件再克隆一份(object_graph 见留存锚测试)。
|
||||
口径:Peak B/Ret B 为 session 堆账目(对象头 + 堆数据 + 存活串);BigInt 不入
|
||||
该账目,由单 run 分配公式按表长单列。epoch arena 的临时驻留不计入字节账目
|
||||
(数量列恒零)。Peak B 为顶层指令边界采样的 session 堆账目高水位;单指令内瞬态
|
||||
与 epoch 高水位不计。Ret B 为 workload 后晋升 + 完整 GC 的真存活集,至多含一份
|
||||
引擎内部副本:逃逸屏障留 epoch 原件且顶层寄存器根不回写时,测量时晋升会把原件
|
||||
再克隆一份(object_graph 见留存锚测试)。
|
||||
";
|
||||
|
||||
/// 把结果格式化为对齐的文本表格(供终端打印)。
|
||||
|
||||
Reference in New Issue
Block a user