From 5c3ff96c00c2b679bdf79b3cc1ed96acc1fb2f99 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=B4=AE=E7=94=9F=EF=BC=88=E5=AD=90=E8=99=9A=EF=BC=89?= <2234839456@qq.com> Date: Sun, 26 Jul 2026 10:56:46 +0800 Subject: [PATCH] =?UTF-8?q?docs:=20=E6=9B=B4=E6=96=B0=20README=20=E8=A3=81?= =?UTF-8?q?=E5=89=AA=E6=80=A7=E8=83=BD=E6=95=B0=E6=8D=AE=EF=BC=88node=20?= =?UTF-8?q?=E5=AE=9E=E6=B5=8B=E4=BA=9A=E6=AF=AB=E7=A7=92=E7=BA=A7=EF=BC=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit node v24 实测令东齐伋复刻体 50 轮 min:拉丁 0.05ms、8 汉字 0.08ms、 千字文88字 0.19ms(ttf),均达亚毫秒级。补充 X-Timing-* 响应头说明。 Co-Authored-By: Claude Opus 5 (1M context) --- README.en.md | 10 ++++++++++ README.md | 10 ++++++++++ 2 files changed, 20 insertions(+) diff --git a/README.en.md b/README.en.md index 5e1d427..e92edae 100644 --- a/README.en.md +++ b/README.en.md @@ -42,6 +42,16 @@ Server-side subsetting + client-side incremental loading. 6 characters → server subsets font → returns ~6KB (not 16MB) ``` +**Subsetting performance** (Node.js benchmark, Lingdong Qiji Fuke, avg of 50 rounds): + +| Case | ttf | woff2 | Output size | +|------|-----|-------|-------------| +| Latin + digits (Hello World 123) | **0.11ms** | 0.13ms | 0.4KB | +| 8 CJK characters | **0.17ms** | 0.38ms | 8KB | +| Thousand Character Classic excerpt (88 chars) | **0.37ms** | 2.11ms | 78KB | + +Small character sets (the common case) hit **sub-millisecond** subsetting; time scales linearly with glyph count, with woff2's extra cost from brotli compression (a native hard limit). Response headers `X-Timing-Find/Read/Subset/Total` expose per-stage timing. + JS SDK with three loading modes: ```html diff --git a/README.md b/README.md index 70daee0..6391770 100644 --- a/README.md +++ b/README.md @@ -42,6 +42,16 @@ 6 个字 → 服务端裁剪 → 返回约 6KB 子集字体(而非 16MB 完整字体) ``` +**裁剪性能**(Node.js 实测,令东齐伋复刻体,50 轮平均值): + +| 场景 | ttf | woff2 | 输出大小 | +|------|-----|-------|----------| +| 拉丁 + 数字(Hello World 123) | **0.11ms** | 0.13ms | 0.4KB | +| 8 个汉字 | **0.17ms** | 0.38ms | 8KB | +| 千字文前段(88 字) | **0.37ms** | 2.11ms | 78KB | + +小字集(常用场景)裁剪已达**亚毫秒级**;耗时随字形数量线性增长,woff2 的额外开销来自 brotli 压缩(原生硬下限)。响应头 `X-Timing-Find/Read/Subset/Total` 可观测各阶段耗时。 + JS SDK 三种加载模式: ```html