我需要知道不同 XML 工具(解析器、验证器、XPath 表达式评估器等)的性能如何受输入文档的大小和复杂性的影响。是否有资源可以记录 CPU 时间和内存使用情况如何受到...的影响……嗯,什么?文档大小(以字节为单位)?节点数?关系是线性的、多项式的还是更糟的?
更新
在 IEEE 计算机杂志第 41 卷第 9 期,2008 年 9 月的一篇文章中,作者调查了四种流行的 XML 解析模型(DOM、SAX、StAX 和 VTD)。他们运行了一些非常基本的性能测试,表明当输入文件的大小从 1-15 KB 增加到 1-15 MB 或大约 1000 倍时,DOM 解析器的吞吐量将减半。其他模型的吞吐量没有受到显着影响。
不幸的是,他们没有进行更详细的研究,例如将吞吐量/内存使用作为节点数/大小的函数。
文章在这里。
更新
我找不到任何正式的方法来解决这个问题。对于它的价值,我做了一些实验,测量 XML 文档中的节点数作为文档大小(以字节为单位)的函数。我正在开发一个仓库管理系统,XML 文档是典型的仓库文档,例如提前发货通知等。
下图显示了以字节为单位的大小与节点数之间的关系(在 DOM 模型下,它应该与文档的内存占用成正比)。不同的颜色对应不同种类的文件。比例为对数/对数。黑线最适合蓝点。有趣的是,对于所有类型的文档,字节大小和节点大小之间的关系是线性的,但是比例系数可能会有很大的不同。
(来源:flickr.com)