[performance] 性能优化路线图(个人项目收窄版)
背景
CLI 已经把文件读取移到了 lint worker 内部(#74),主进程不再一次性持有所有文件内容。最明显的一块内存浪费已经移除。
剩余压力主要来自:
- worker 内的 parser / lint 工作集
- 同时运行的 worker 数量
- 超大 Markdown 文件
--fix 模式下的重复 lint / parse
考虑到这是个人 / 小型开源项目,优先做小而可验证的 CLI 边界控制,避免大改 parser / rule 执行模型。
目标
- 保持
lintMarkdown() API 稳定
- 不大改 parser、rule selector 或规则执行模型
- 降低大文件 + 多 worker 场景的 OOM 风险
- 优先做小 PR,每个 PR 都能单独 review
- 性能 PR 提供 before / after benchmark
- 不改变 lint 输出行为,除非显式声明
非目标
- AST streaming / 增量 parser
- 大规模重写
@lint-md/core
- 改变 lint rule 语义
- 改变 fix 输出行为(除非有单独 issue)
子 Issue(active scope)
实施顺序
- P1 自适应并发(done)
- P2 大文件策略
总验收
- 每个子任务独立小 PR
- 性能 PR 有 benchmark 数据
- 不改变 lint 输出
- 在 profiling 证明必要之前,AST streaming 保持非目标
Deferred / 暂缓项(含原因)
下列方向在 issue 起源时讨论过,但按本项目收益 / 风险评估暂缓:
- P3 changed-file cache — invalidation、配置 / 版本 hash、
--fix 安全性等失败面叠加,长期维护成本高于个人项目预期收益。
- P4 core benchmark 分层基线 — 真实内存危机出现前 ROI 不足。
- P5 text-node 扫描合并 — 触碰 core rule 执行模型,收益依赖实际规则集。
- P6 fix mode 去重 — 多轮 fix / 震荡 / 最终输出一致性边界,风险高于收益。
- P7
docs/performance.md — roadmap 收窄后单独的策略文档价值有限。
- AST / incremental / streaming parser — 非近期目标;profiling 证明必要之前不做。
详细规格
[performance] 性能优化路线图(个人项目收窄版)
背景
CLI 已经把文件读取移到了 lint worker 内部(#74),主进程不再一次性持有所有文件内容。最明显的一块内存浪费已经移除。
剩余压力主要来自:
--fix模式下的重复 lint / parse考虑到这是个人 / 小型开源项目,优先做小而可验证的 CLI 边界控制,避免大改 parser / rule 执行模型。
目标
lintMarkdown()API 稳定非目标
@lint-md/core子 Issue(active scope)
实施顺序
总验收
Deferred / 暂缓项(含原因)
下列方向在 issue 起源时讨论过,但按本项目收益 / 风险评估暂缓:
--fix安全性等失败面叠加,长期维护成本高于个人项目预期收益。docs/performance.md— roadmap 收窄后单独的策略文档价值有限。详细规格