2

我有一个将 c# 对象序列化为 xml 文件的应用程序。我目前正在使用.Net XmlSerializer。

我遇到的问题是,我需要序列化约 8000 个主节点(每次 4-10 个子节点),目前我需要 15-20 分钟才能将它们全部序列化。

我必须保持相同的 XML 输出,因为文件是由另一个程序而不是我的程序读取的,我不能让它们改变读取文件的方式。

我进行了一些搜索,发现了很多比较,但它们都涉及使用具有二进制序列化的 protobuf-net。

所以我的问题是:我怎样才能改善这个序列化时间?另一个序列化器?向我的模型添加更多属性(目前我只有 XmlName,列表相同)。

谢谢!

4

2 回答 2

2

看看下面的链接,有一些技巧可以提高 XML 序列化性能

http://msdn.microsoft.com/en-us/library/ff650685.aspx

如果您可以更改组件的逻辑,我将使用数据库来存储如此大的 XML,因为尚未进行序列化以存储非常大的 XML 文件

于 2013-01-21T09:55:12.337 回答
0

由于瓶颈可能是大字符串处理,您可能需要考虑直接写入 FileStream 的手写代码。如果您喜欢冒险,您还可以尝试为CGbR Project生成编写 IGenerator 的代码。但这仅在您有许多不同的课程时才有意义。

于 2016-04-05T23:28:46.613 回答