崮生(子虚)
|
c04914e255
|
perf(woff2): glyf triplet 变换无分支优化(优化302)
千字文 woff2(57168 点)profile 定位 transformGlyfAndLoca 热点:
- 坐标解码 50/50 不可预测分支(正负 delta 各半)→ sign 位无分支乘法
- abs 三元 → Math.abs(V8 编译为 neg 指令)
- curveBit 三元 → 位运算无分支
微基准 3.5-3.6x,端到端千字文 woff2 9.8→9.1ms。
体积与 SSIM 完全不变(无分支只改计算方式不改结果)。
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
|
2026-06-13 21:07:57 +08:00 |
|
崮生(子虚)
|
168fc66544
|
feat(v1.9.0): OTF 子集化支持 + 法字笔画修复 + subsetCache 版本指纹
性能(vs v1.7.0 基线,基准测试全用例通过):
- 千字文 woff2 346ms → 9.8ms(35x)
- 8汉字 woff2 39.7ms → 2.8ms(14x)
- 千字文 ttf 6.0ms → 4.4ms
- 8汉字 ttf 2.7ms → 2.1ms
OTF 正确性:
- 修复 CFF.js readCFFIndexObject 漏读 off[idx+1] 导致子程序读成 0 字节,
思源黑体「法」字三点水丢笔画的问题
- 修复非 subset 模式 cmap format12 崩溃(空数组误判为 subset)
缓存健壮性:
- subsetCache key 加版本指纹(package version + process.uptime),
杜绝代码已修但缓存返回旧错误结果
基准测试:
- 新增白狐/思源 OTF 用例(含法海波等复杂笔画字)守护 OTF→TTF 转换
- 修复 calculateSSIM 的 width 推断 bug(sqrt 假设正方形)
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
|
2026-06-13 21:01:19 +08:00 |
|
崮生(子虚)
|
4a6c7e64e1
|
glm2.5 优化,暂存
|
2026-06-13 20:19:57 +08:00 |
|
崮生(子虚)
|
03107af2dd
|
添加注释
|
2026-04-11 22:51:53 +08:00 |
|
崮生(子虚)
|
bd3189b459
|
优化性能
|
2026-04-11 17:53:57 +08:00 |
|
崮生(子虚)
|
6ba093ff70
|
优化性能
|
2026-04-11 10:25:54 +08:00 |
|
崮生(子虚)
|
2f9eb3fd1a
|
支持 woff2
|
2026-04-11 00:17:27 +08:00 |
|
崮生(子虚)
|
0bfc9c9b27
|
1
|
2026-04-11 00:11:09 +08:00 |
|
崮生(子虚)
|
161bafc02a
|
实现 js 版 woff2 处理
|
2026-04-10 20:42:30 +08:00 |
|
崮生(子虚)
|
af0ab38cec
|
性能优化
|
2026-04-10 13:51:03 +08:00 |
|
崮生(子虚)
|
4990a0f61d
|
性能优化
|
2026-04-10 08:44:09 +08:00 |
|
崮生(子虚)
|
97f4d72e6a
|
fix: 修复 OTF→TTF 转换字体在浏览器中渲染空白的问题
根因:optimizettf 中 maxPoints/maxContours 只在 TypedArray 格式(_xArr)
的字形分支中统计,OTF→TTF 转换的字形使用对象 contours 格式,
导致 maxp 表中这两个值为 0,浏览器据此跳过渲染。
同时包含 OTF 解析路径的多项性能优化和清理冗余测试文件。
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
|
2026-04-09 20:46:48 +08:00 |
|
崮生(子虚)
|
18e60fe940
|
优化性能
|
2026-04-09 16:47:41 +08:00 |
|
崮生(子虚)
|
b7a91a3a11
|
fix: 修正 package.json exports 条件顺序,消除 tsup 构建警告
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
|
2026-04-09 11:23:56 +08:00 |
|
崮生(子虚)
|
6f0e3d8e6b
|
fix: 修复 name 表写入偏移错误导致浏览器无法渲染字体
name.js write 函数改用 view.setUint16 后未同步 writer.offset,
导致 name 字符串覆盖 header,name 表损坏。浏览器依赖 name 表
识别字体所以无法渲染,而 Node 端渲染不依赖 name 表所以基准
测试未检测到。
同时修复 cmap sizeof 动态计算记录头大小的问题。
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
|
2026-04-09 11:22:51 +08:00 |
|
崮生(子虚)
|
909b91a8d5
|
优化
|
2026-04-09 10:27:17 +08:00 |
|
崮生(子虚)
|
acfe0ca022
|
优化 6.3ms / 2.3ms / 11.1ms - 全面超越之前最佳性能!
|
2026-04-09 10:25:17 +08:00 |
|
崮生(子虚)
|
2aa6852dca
|
优化2
|
2026-04-09 10:21:09 +08:00 |
|
崮生(子虚)
|
d43255aba0
|
性能优化1
|
2026-04-09 10:17:02 +08:00 |
|
崮生(子虚)
|
765a301649
|
修改为本地引用,清理冗余文件
|
2026-04-09 09:50:26 +08:00 |
|
崮生(子虚)
|
41c2741e3e
|
将 fonteditor-core 嵌入到项目中,方便后续优化
|
2026-04-08 21:24:56 +08:00 |
|