Skip to content

markdownPreviewService0.0.8

Choose a tag to compare

@Radiant303 Radiant303 released this 11 Jun 08:44

🚀 v0.0.8 - Rendering Performance Optimization & Warm Startup Pipeline

本版本聚焦 SVG/PNG 渲染链路的性能优化,重点减少代码块换行过程中的重复计算与内存分配,并优化服务启动后的首次请求体验。通过提前初始化字体系统与 usvg 配置,同时精简普通文本渲染路径,让长文本、长标题和代码块场景下的响应更加稳定。

🛠️ 核心更新日志 (Changelog)

  1. ⚡ 代码块换行算法性能优化

性能重构:优化代码块折行逻辑,减少字符串临时对象创建与重复文本测量。

缓存友好:在代码块渲染过程中缓存文本行宽,避免同一段内容被多次计算宽度。

更低开销:针对长代码行、缩进代码和连续高亮 token 场景,降低内存分配压力,提升整体渲染吞吐。

  1. 🔥 服务启动阶段预热渲染资源

冷启动优化:服务启动时主动初始化字体系统与 usvg 配置,避免首次 /generate 请求承担字体加载和 SVG 渲染配置初始化成本。

体验改善:首次渲染耗时更加稳定,不再出现首个请求明显慢于后续请求的情况。

工程收益:将不可避免的初始化成本前移到启动阶段,使线上请求链路更可控。

  1. 📝 普通文本渲染路径精简

减少重复测量:无内联数学公式的普通文本行,从“输出 SVG 后再次测宽”优化为“直接输出 SVG”。

长文本更稳:对超长标题、连续中文文本、普通段落等高频场景减少不必要的 cosmic-text 调用。

保持兼容:包含行内数学公式的文本仍保留精确测宽逻辑,确保公式与普通文本混排位置正确。