linq to xml和xml序列化之间的性能差异



我想创建一个xml文件(100行,5个名称空间和30个不同的标签,总共20个属性)。我已经有一个硬编码的xml示例,但我需要编写一些c#代码来生成动态xml并填充值,这当然可以改变。性能是一个问题。

  1. 我是否应该使用linq to xml并使用XDocument和XElement创建所有标记并提供包含动态值的变量

  2. 因为我已经有一个xml的例子,创建一个模式。并将值提供给对象

xml(对象流)将通过HTTP POST每秒发送到web服务。

我打算对两个版本进行时间测试,但我只是好奇是否有人已经这样做了

LINQ to XML版本应该有更好的性能。

如果您想进一步优化它,您可能应该考虑直接字符串连接(但这不是最佳实践,性能增益不会很大)。

下一个性能选项是xmltextwwriter。这可能是"正确"编写XML的最快方式——它不需要像LINQ to XML那样创建XML对象模型,因此应该会快得多。

如果缓存XmlSerializer实例并且不每次都创建它,则可以稍微优化一下序列化。那么它也会相对较快,尽管肯定比直接写XML慢。

最新更新