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

最佳答案

如果我面对这个问题,在谷歌上找不到任何东西,我可能会自己尝试。
一些“后面的一个伊夫洛普”的东西,以了解它的去向。但这需要我知道如何做一个XML解析器。
对于非算法基准,请查看以下内容:
http://www.xml.com/pub/a/Benchmark/exec.html
http://www.devx.com/xml/Article/16922
http://xerces.apache.org/xerces2-j/faq-performance.html

09-25 23:48
查看更多