崮生(子虚) e37593a552 perf(cff-subset): 三处全量解析改按需查询,思源 subsetCFF -77%
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>
2026-07-24 23:05:54 +08:00
..
2026-04-08 22:05:17 +08:00
2024-08-19 18:10:09 +08:00