我需要了解不同 XML 工具(解析器、验证器、XPath 表达式求值器等)的性能如何受到输入文档的大小和复杂性的影响。是否有资源记录了 CPU 时间和内存使用情况如何受到……好吧,什么?文档大小(以字节为单位)?节点数?关系是线性的、多项式的还是更糟?
更新
在 IEEE Computer Magazine,第 41 卷第 9 期,2008 年 9 月的一篇文章中,作者调查了四种流行的 XML 解析模型(DOM、SAX、StAX 和 VTD)。他们运行了一些非常基本的性能测试,这些测试表明当输入文件的大小从 1-15 KB 增加到 1-15 MB 或大约 1000 倍时,DOM 解析器的吞吐量将减半。其他模型的吞吐量没有受到显着影响。
遗憾的是,他们没有进行更详细的研究,例如吞吐量/内存使用量作为节点数量/大小的函数。
文章是here.
更新
我找不到任何关于这个问题的正式处理方法。对于它的值(value),我做了一些实验来测量 XML 文档中的节点数作为文档大小(以字节为单位)的函数。我正在研究仓库管理系统,XML 文档是典型的仓库文档,例如提前发货通知等
下图显示了以字节为单位的大小与节点数之间的关系(这应该与 DOM 模型下文档的内存占用量成正比)。不同的颜色对应不同种类的文档。尺度是对数/对数。黑线最适合蓝点。有趣的是,对于各种文档,字节大小和节点大小之间的关系是线性的,但比例系数可能非常不同。
(来源:flickr.com)
最佳答案
如果我遇到这个问题并且在谷歌上找不到任何东西,我可能会尝试自己解决。
一些“信封背面”的内容可以让您了解它的发展方向。但这有点需要我了解如何进行 xml 解析器。 对于非算法基准,请看这里:
关于xml - XML 解析器/验证器的算法复杂性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31826/