我有一个将c#对象序列化为xml文件的应用程序。我目前使用的是.Net XmlSerializer。
我的问题是,我需要序列化大约8000个主节点(每次有4-10个子节点),目前我需要大约15-20分钟来序列化所有这些节点。
我必须保持相同的XML输出,因为文件是由另一个程序读取的,而不是我的程序,并且我不能让它们改变读取文件的方式。
我做了一些搜索,发现了很多比较,但它们都涉及到使用protobuf-net,它有一个二进制序列化。
所以我的问题是:如何改善序列化时间?另一个串行器?向我的模型添加更多属性(目前我只有XmlName,列表也是如此)。
谢谢!
发布于 2013-01-21 17:55:12
看看下面的链接,这里有几个提高XML序列化性能的技巧
http://msdn.microsoft.com/en-us/library/ff650685.aspx
如果您可以更改组件的逻辑,我将使用数据库来存储如此大的XML,因为没有进行序列化来存储非常大的XML文件
发布于 2016-04-06 07:28:47
由于瓶颈可能是大字符串处理,因此您可能需要考虑直接写入FileStream的手写代码。如果您喜欢冒险,也可以尝试为CGbR Project生成代码编写IGenerator。但只有当你有许多不同的类时,这才有意义。
https://stackoverflow.com/questions/14436025
复制相似问题