From 90630221c0cc6f25054c8297740e29ba4a1b8ec4 Mon Sep 17 00:00:00 2001 From: pjh456 <147148383@qq.com> Date: Thu, 17 Sep 2026 05:54:01 +0000 Subject: [PATCH] =?UTF-8?q?docs:=20perm=20interner=20=E4=BF=9D=E7=95=99?= =?UTF-8?q?=E5=8F=A3=E5=BE=84=E5=8E=BB=E6=B3=84=E6=BC=8F=E6=8E=AA=E8=BE=9E?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- crates/oxide_kernel/src/string_forge.rs | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/crates/oxide_kernel/src/string_forge.rs b/crates/oxide_kernel/src/string_forge.rs index f2833865..0e166613 100644 --- a/crates/oxide_kernel/src/string_forge.rs +++ b/crates/oxide_kernel/src/string_forge.rs @@ -400,8 +400,8 @@ pub fn single_char_ptr(ch: u8) -> *const JsString { } /// 小整数(0..=99)永久 `JsString` 指针表:`s += j` 等数字叶子拼接的高频命中路径, -/// 免每次 `to_string` + 登记 2 次分配。泄漏面严格有界:100 条目 ≈ 4KB,进程生命 -/// 期内不释放(同 `SINGLE_CHAR_TABLE` 论证)。 +/// 免每次 `to_string` + 登记 2 次分配。物化面严格有界:100 条目 ≈ 4KB, +/// 随进程生命周期有意保留(同 `SINGLE_CHAR_TABLE` 论证)。 static SMALL_INT_TABLE: [OnceLock; 100] = [const { OnceLock::new() }; 100]; /// 取 0..=99 小整数的永久 `JsString` 指针,惰性物化一次后恒返回同一地址。 @@ -431,7 +431,8 @@ pub fn small_int_ptr(n: u32) -> Option<*const JsString> { const TYPEOF_TEXTS: [&str; 8] = ["undefined", "object", "boolean", "number", "string", "symbol", "bigint", "function"]; /// typeof 结果永久 `JsString` 指针表:typeof 运算符是高频产出路径, -/// 复用静态表免每次 session 分配与 interner 锁查。泄漏面严格有界:8 条目 ≈ 数百字节。 +/// 复用静态表免每次 session 分配与 interner 锁查。物化面严格有界:8 条目 ≈ 数百字节, +/// 随进程生命周期有意保留。 static TYPEOF_TABLE: [OnceLock; 8] = [const { OnceLock::new() }; 8]; /// 取 typeof 结果串的永久 `JsString` 指针,惰性物化一次后恒返回同一地址。