markdownPreviewService0.0.8
🚀 v0.0.8 - Rendering Performance Optimization & Warm Startup Pipeline
本版本聚焦 SVG/PNG 渲染链路的性能优化,重点减少代码块换行过程中的重复计算与内存分配,并优化服务启动后的首次请求体验。通过提前初始化字体系统与 usvg 配置,同时精简普通文本渲染路径,让长文本、长标题和代码块场景下的响应更加稳定。
🛠️ 核心更新日志 (Changelog)
- ⚡ 代码块换行算法性能优化
性能重构:优化代码块折行逻辑,减少字符串临时对象创建与重复文本测量。
缓存友好:在代码块渲染过程中缓存文本行宽,避免同一段内容被多次计算宽度。
更低开销:针对长代码行、缩进代码和连续高亮 token 场景,降低内存分配压力,提升整体渲染吞吐。
- 🔥 服务启动阶段预热渲染资源
冷启动优化:服务启动时主动初始化字体系统与 usvg 配置,避免首次 /generate 请求承担字体加载和 SVG 渲染配置初始化成本。
体验改善:首次渲染耗时更加稳定,不再出现首个请求明显慢于后续请求的情况。
工程收益:将不可避免的初始化成本前移到启动阶段,使线上请求链路更可控。
- 📝 普通文本渲染路径精简
减少重复测量:无内联数学公式的普通文本行,从“输出 SVG 后再次测宽”优化为“直接输出 SVG”。
长文本更稳:对超长标题、连续中文文本、普通段落等高频场景减少不必要的 cosmic-text 调用。
保持兼容:包含行内数学公式的文本仍保留精确测宽逻辑,确保公式与普通文本混排位置正确。