mirror of
https://github.com/2234839/web-font.git
synced 2026-09-04 23:02:27 +08:00
延续 9d6e982(type1 fmt2 反转)的思路,对 SingleSubst format1 与 AlternateSubst(type3)同样反转遍历方向:遍历 reachable 二分查 covGids (按 gid 升序)得 index,替代遍历 covGids 逐个查 reachable。 初夏明朝纯标点实测 fmt1 covLen 405、type3 covLen 987(命中率 2.3%), 均属「展开全量命中极少」模式,反转后遍历量从 covGids.length 降到 reachable.size。 关键:加条件 covGids.length > reachable.size 才反转。无条件反转在 霞鹜/FiraCode 上负优化(covGids 短,FiraCode type1 avg 5.5,二分开销 > Set.has 遍历)。条件反转使短 covGids 走原 Set.has 路径。 type4(Ligature)不反转:firstHit 判定反转后遍历 reachable(53)× 18 calls = 954 次二分 > 原 684 次 Set.has,必负。 A/B vs 9d6e982(3000 次 p50,reachable sha 全一致): - 初夏标点 102→92μs(-10%) - 初夏8字 54→51μs(-5%) - 霞鹜标点 12→10μs(-12%,无条件版 +8% 已修正) - 霞鹜8字 6.8→6.4μs(-7%) - FiraCode 标点 70→69μs(-1%,无条件版 +2% 已修正) 相比最初 baseline(fee9e49 前)初夏标点 129→92μs(-29%)。基准测试 SSIM 全不变。 Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>