mirror of
https://github.com/2234839/web-font.git
synced 2026-09-19 00:14:23 +08:00
原实现调用 readCoverageGids(off, cache) 完整展开 coverage 到数组再遍历找首个 excluded, 对 format2 range(初夏明朝 coverage 常覆盖上千 gid)即使首个 gid 就 excluded 也要展开全量, 是「展开全量命中极少」浪费(同类见 gsub-classdef-format2-bsearch)。 改为 cache 命中遍历缓存数组,miss 时直接边解析 coverage 边查 inSubset,命中即返回, 不分配数组、不填 cache。fmt3 失败路径的 coverage 永不被 collectSubtableTargets 读 (失败不产 target),故不填 cache 无碍。 reachable 集合 sha256 三字体完全一致,SSIM/ink 全不变。 初夏纯标点 collectReachable p50 0.159→0.136ms(-14%)。