239309925e
new_string_owned 分配前做廉价阈值检查(1 次 usize 比较 + 阈值读取), 超 session_gc_threshold 即调 collect_strings_only:clear_all_marks → 完整 mark(现成)→ sweep_session_strings(现成),跳过对象 sweep 搬移, builtin 层对象裸指针跨分配点零悬垂面。触发检查在登记之前——返回值 尚未根化,登记后回收会被本次 GC 判死致悬垂。分配前触发亦使 GC 期间 新串仍在栈上未登记,天然安全。 长循环字符串累积场景(REPL 常驻 / test262 长测试 / kernel_batch 复用) session 内存从无界变为有界(≤ 阈值 + 存活串);bench gc_trigger_count 恢复有效(string_build 由 0 → 2 次触发)。07.2 rope 死节点回收依赖本机制。
9 lines
125 B
JavaScript
9 lines
125 B
JavaScript
var ITERATIONS = 1000000;
|
|
|
|
var sum = 0;
|
|
for (var i = 0; i < ITERATIONS; i++) {
|
|
var s = "str" + i;
|
|
sum += s.length;
|
|
}
|
|
sum
|