anydoc 性能基准 - 七工具横向对比
anydoc 究竟有多快、多全、多干净?与其听我们自夸,不如直接看 Firecrawl 官方在 README 里公布的那组横向数据。
测试方法
- 样本:100 份真实文档,覆盖全部 14 种格式(Word / PowerPoint / Excel / OpenDocument / RTF / EPUB / CSV / PDF)
- 工具:anydoc、LibreOffice、unstructured、markitdown、pandoc、docling、mammoth,共七家
- 维度:完整性、结构保留、格式保真、整洁度,满分 100
- 速度:各工具的中位数转换耗时
结果总表
| 工具 | 格式数 | 中位耗时 | 评分 | 完整性 | 结构 | 格式 | 整洁度 |
|---|---|---|---|---|---|---|---|
| anydoc | 14/14 | 4.4ms | 81 | 87 | 79 | 78 | 81 |
| libreoffice | 12/14 | 1129.5ms | 40 | 59 | 42 | 40 | 24 |
| unstructured | 8/14 | 572.9ms | 58 | 63 | 76 | 59 | 51 |
| markitdown | 6/14 | 134.8ms | 33 | 65 | 78 | 66 | 60 |
| pandoc | 5/14 | 102.1ms | 34 | 56 | 74 | 57 | 56 |
| docling | 4/14 | 513.6ms | 21 | 57 | 60 | 60 | 57 |
| mammoth | 1/14 | 52.5ms | 8 | 70 | 84 | 71 | 75 |
怎么读这张表
格式覆盖:14/14,全场唯一。 其他工具或多或少有短板——mammoth 只认 docx 一种,pandoc 和 docling 都不到一半。如果你的工作流里什么格式都可能出现,只有 anydoc 能一张表通吃。
速度:4.4ms 对 134.8ms。 第二快的 markitdown 比 anydoc 慢了一个数量级;LibreOffice 更是慢了 250 多倍。在批量转换、实时解析、Agent 调用这类场景里,这个差距是体验级别的。
质量:81 分,全面领先。 完整性 87 分最突出——这意味着转出来的 Markdown 信息丢失最少,恰恰是喂给 LLM 时最看重的一点。结构、格式、整洁度也都高于第二名的对应项。
别忘了背后的成本差异。 LibreOffice 需要系统级安装、自带运行时开销;docling/unstructured 依赖重量级模型和依赖链。anydoc 是一个纯 Rust 库,打进你的二进制或 WASM 里就是几 MB 的事。
为什么 anydoc 能这么快
速度不是靠魔法,而是架构选择的结果:
- 一个模型——所有格式解析进同一个 Document 模型,渲染逻辑只有一套,没有格式间的重复转换
- 纯 Rust——没有解释器开销,没有进程边界,没有模型推理
- 按需解析——只解析需要的东西,页眉、页脚、页码等噪音从设计上就被排除,不产生多余工作
局限性也要说清楚
- 扫描版 PDF 不支持:纯图片 PDF 需要 OCR,anydoc 返回
Unsupported。Firecrawl Parse 在同一个转换链路上补上了 OCR。 - 基准是官方样本:100 份文档有代表性但不是全宇宙,特殊排版的极端情况仍需实测。
- 速度标注为中位数:超大文件(几百 MB 的 xlsx)耗时会更长,但相对同类工具的优势依然成立。
想自己跑一遍?
官方仓库的 bench/ 目录提供了完整的基准测试代码,拉下来在自己的文档集上跑一遍最踏实。
想看两大热门工具的正面 PK?