崮生(子虚) 7cd960617a perf(otf): calcTableChecksum 改 DataView.getUint32 批量读,assemble -83%
原逐字节 bytes[i]<<24|bytes[i+1]<<16|... 手工拼装 uint32,对思源 742KB CFF
表是 assembleSfnt 主要开销(assembleSfnt min 0.643ms 中绝大部分)。

改 DataView.getUint32 一次读 4 字节大端 uint32(V8 对 DataView 专门内联,
[[dataview-getuint32-fastest]] 验证其快于 Uint32Array+swap 与手工位拼装),
尾部 1~3 字节补 0 单独处理保持规范语义。

assembleSfnt(思源8字): min 0.643→0.110ms(-83%);
subsetOTF: min 1.321→0.725ms(-45%)、p50 1.720→1.079ms(-37%);
(叠加上一 commit wholeSum 复用,相对原版 min 1.836→0.725 累计 -60%)
字节级零回归(cmp 优化前后输出逐字节一致,含 checksum/checkSumAdjustment);
基准测试全字体 SSIM 与优化前完全一致。

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-24 23:18:37 +08:00
..
2026-04-08 22:05:17 +08:00
2024-08-19 18:10:09 +08:00