mirror of
https://github.com/pjh456/OxideJS.git
synced 2026-10-26 19:51:11 +08:00
test: 新增内存占用基准用例与留存内存采集
bench 每轮采集在 workload 后 promote 根持有/会话引用的 epoch 对象并强制 一次 full GC,新增 peak_bytes / retained_bytes / retained_objects 三口径 (原 session_* 字段为执行期累计分配,不反映 workload 后留存);dispatch 循环增加 session 堆高水位采样,VM 暴露 session_bytes_peak 与 collect_session_gc。新增 8 个 mem_* 压力用例(对象图/字符串/闭包链/数组 增删/跨调用保留/Map/Set 保留/字符串拼接),基线扩至 76 条目。
This commit is contained in:
@@ -0,0 +1,17 @@
|
||||
// 闭包/upvalue 长链留存:10000 层闭包,每层同时捕获前层闭包与自身 payload 对象,
|
||||
// 自 head 沿 prev 链回溯第一层时全部驻留(函数对象、upvalue cell、payload 串)
|
||||
var head = null;
|
||||
for (var i = 0; i < 10000; i++) {
|
||||
(function (prev, payload) {
|
||||
head = function () {
|
||||
return [prev, payload];
|
||||
};
|
||||
})(head, { id: i, data: "closure_payload_padding_" + i });
|
||||
}
|
||||
var cur = head;
|
||||
var hops = 0;
|
||||
while (cur !== null) {
|
||||
cur = cur()[0];
|
||||
hops++;
|
||||
}
|
||||
hops === 10000
|
||||
Reference in New Issue
Block a user