mirror of
https://github.com/2234839/web-font.git
synced 2026-09-04 23:02:27 +08:00
原逐字节 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>