mirror of
https://github.com/2234839/web-font.git
synced 2026-09-04 23:02:27 +08:00
CID CFF 子集化原先对 numGlyphs(思源 65535) 全量解析三处,子集仅 11 字时是纯浪费: 1. readIndex(CharStrings) 遍历 65536 个 offset(0.435ms)→ 直接读 count+offSize, 按 subsetGid 随机读 2 个 offset 取字节区间。 2. readCharsetCIDs 填充 65535 CID 数组 → lookupCharsetCID 遍历 range 查单个 gid (思源 format2 约 6 千 range,省去 65535 项填充;range 起始 gid 累积计算)。 3. parseFDSelect 填充 65535 FD 数组 → lookupFDSelect format3 二分 range 查单个 gid。 subsetCFF 1.577→0.357ms(-77%);subsetOTF 思源 3.56→1.89ms(-47%),基准 avg 5.5→3.7ms。 字节级零回归(思源/白狐子集字节与优化前 cmp 完全一致),SSIM 不变。 Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>