fix: 直 session 分配站(函数对象/prototype 子对象/标签模板数组)补 session 堆账目,配单 run 分配包络高水位 O(1) 采样锚与执行期 churn 峰值校准用例

This commit is contained in:
2026-09-11 19:44:07 +00:00
parent ad0405fe51
commit 4c3ac707f7
6 changed files with 152 additions and 0 deletions
+3
View File
@@ -1062,6 +1062,9 @@ impl Vm {
clone.set_session_epoch(true);
let ptr = self.gc_state.session_epoch.alloc(clone) as *mut JsObject;
self.gc_state.session_object_ptrs.push(ptr);
// 直 session 分配计入堆账目(与 promote 同式:对象头 + 对象堆数据)。
self.gc_state.session_bytes_allocated += std::mem::size_of::<JsObject>()
+ crate::session_gc::SessionGc::object_heap_data_bytes(unsafe { &*ptr }) as usize;
ptr
};
let cooked = alloc_session_array(n);