Skip to content

Latest commit

 

History

History
56 lines (44 loc) · 3.99 KB

File metadata and controls

56 lines (44 loc) · 3.99 KB

性能报告(最新一次)

运行环境

  • 生成时间:2026-06-24T01:00:39.398Z
  • Node.js:v23.11.0
  • 平台:darwin arm64
  • CPU:Apple M1 Pro
  • Commit:cd1e8839977c67b7b5b24449e0bc08b6d96b8ce2

默认 API 说明:普通 md.parse(src) / md.render(src) 面对超大但有限的字符串时,可能自动启用内部大文本优化。外部 parser 行保留各自原生输出形态;OXJ 表示在 @ox-content/napi 的 AST JSON 字符串后追加 JSON.parse

Parse 吞吐(one-shot)

字数 S1 one S2 one S3 one S4 one S5 one M1 one E1 one OX1 one OXJ one MM1 one
5,000 0.2196ms 0.1661ms 0.2070ms 0.2086ms 0.0425ms 0.2052ms 0.2656ms 0.0350ms 0.1717ms 4.4276ms
20,000 0.8461ms 0.6606ms 0.8612ms 0.8456ms 0.1586ms 0.8322ms 1.0668ms 0.1338ms 0.6691ms 20.39ms
50,000 2.2164ms 1.7290ms 2.2308ms 2.2136ms 0.4542ms 2.1523ms 2.8315ms 0.3757ms 1.7326ms 52.18ms
100,000 5.0934ms 4.7390ms 5.4697ms 5.2654ms 1.4812ms 5.3313ms 6.5396ms 0.7522ms 3.5254ms 104.55ms
200,000 11.56ms 10.43ms 11.77ms 11.79ms 3.7401ms 12.02ms 14.28ms 1.7581ms 7.3258ms 208.36ms
500,000 31.37ms 25.57ms 29.15ms 30.67ms 11.65ms 33.24ms 38.18ms 4.6458ms 19.00ms -
1,000,000 57.66ms 68.65ms 85.03ms 55.67ms 25.81ms 63.77ms 79.08ms 9.0787ms 39.64ms -

Render API 吞吐(parse + HTML 输出)

字数 markdown-it-ts.render markdown-it-ts.renderAsync markdown-it.render @ox-content/napi micromark remark+rehype markdown-exit
5,000 0.0275ms 0.0268ms 0.2659ms 0.0318ms 5.5840ms 6.3510ms 0.3139ms
20,000 0.0936ms 0.0943ms 1.0115ms 0.1778ms 24.96ms 28.95ms 1.2538ms
50,000 0.2493ms 0.2432ms 2.5732ms 0.3882ms 64.60ms 86.39ms 3.2280ms
100,000 0.5141ms 0.5057ms 6.5609ms 0.8094ms 129.65ms 199.22ms 8.0743ms
200,000 0.9076ms 1.0686ms 15.38ms 1.7079ms 251.64ms 502.82ms 18.83ms
500,000 3.0155ms 3.1505ms 42.60ms 4.4320ms - - 50.21ms
1,000,000 7.0260ms 7.5847ms 90.57ms 7.6613ms - - 106.46ms

markdown-it-ts vs @ox-content/napi

字数 TS 最佳 parse ox parse-only Parse 对比 TS AST JSON AST JSON 对比 TS render ox render Render 对比
5,000 0.0425ms 0.0350ms 1.22x 更慢 0.0279ms 1.31x 更快 0.0275ms 0.0318ms 1.16x 更快
20,000 0.1586ms 0.1338ms 1.19x 更慢 0.0844ms 2.03x 更快 0.0936ms 0.1778ms 1.90x 更快
50,000 0.4542ms 0.3757ms 1.21x 更慢 0.2194ms 2.03x 更快 0.2493ms 0.3882ms 1.56x 更快
100,000 1.4812ms 0.7522ms 1.97x 更慢 0.4529ms 2.01x 更快 0.5141ms 0.8094ms 1.57x 更快
200,000 3.7401ms 1.7581ms 2.13x 更慢 0.9489ms 1.95x 更快 0.9076ms 1.7079ms 1.88x 更快
500,000 11.65ms 4.6458ms 2.51x 更慢 1.9649ms 2.41x 更快 3.0155ms 4.4320ms 1.47x 更快
1,000,000 25.81ms 9.0787ms 2.84x 更慢 5.7872ms 1.60x 更快 7.0260ms 7.6613ms 1.09x 更快

结论

  • @ox-content/napi 的 parse-only 很快,因为它返回 AST JSON 字符串,而不是 JavaScript Token[] 对象图。
  • parseStockFastAstJson 在本基准中已经快于 ox parse-only,说明扫描与紧凑字符串输出不是主要瓶颈。
  • 默认 md.parse() 仍要返回 markdown-it 兼容、可变的 tokens,剩余差距主要来自 Token、children、map 数组与 GC 成本。
  • 默认 md.render() 走 stock render 快路径后,在本快照中全尺寸都快于或接近 @ox-content/napi render。

场景说明:S1~S5 为 markdown-it-ts 配置矩阵;M1 为 markdown-it;E1 为 markdown-exit;OX1 为 @ox-content/napi parse-only;OXJ 为 ox parse + JSON.parse;MM1 为 micromark parse-only。