留白从 0.1.0 到 0.6.3 只用了一周,公式、图表、脚注、Word 导出、11 套主题全加上了。跑了一轮端到端测试,三个发现挺有意思:
1. 普通长文没变慢,但格式密集的文稿移动一次光标慢了 3–4 倍。元凶是一个缓存用 EditorState 当键 ——CodeMirror 的状态不可变,光标每动一下都是新对象,缓存次次落空。改成 state.doc 后,30 万字富文稿按一次方向键从 20–22 ms 降到 9–11 ms。
2. 右侧大纲打开文稿只列首屏的标题。CodeMirror 默认只解析可见区之后 10 万字,大纲生成一次就不管后台解析了;从 0.1.6 起就有这个 bug。
3. 它最初报「20 万字就到上限」,我追问了一句,它重测后改口:上限看块数不看字数。段落长的小说式文稿,100 万字每个字约 8 ms,200 万字约 10 ms;真正慢的是每两三百字就有表格图片的密集文稿。
修复随 0.6.4 发布:字数统计挪进 Web Worker,Mermaid 等首帧画完再加载,启动包从 2290 KB 切到 1263 KB;CI 里加了性能预算,退化一倍就拦。
liubai.echovic.com