我正在解析我的WP7应用程序中的一个大的xml文件(1 MB)。该文件是项目的一部分, 所以它没有通过网络加载。不幸的是,它需要很长时间,约。 3秒,到 得到我需要的内容。我已经读过,问题是xml序列化,以及它的问题 最好去二进制序列化。
但我现在有我的xml文件,是否有可能更改格式或其他内容 我的xml文件,以便解析会更快?我已经将它拆分成很多部分, 但它的速度并不快。
答案 0 :(得分:1)
1兆字节不是特别大。
二进制格式将更紧凑,更快,特别是如果您自己编写而不是使用.net序列化支持,这会给数据增加很多开销。
如果您想坚持使用xml,通常可以使用简洁紧凑的格式来显着提高性能:
配置并优化您的加载代码 - 您可能会发现与xml无关的瓶颈。您可以推迟一些工作,或者在另一个线程上进行一些数据转换处理,但要注意为小的收益引入大的复杂性。
最后,尝试不同的方法 - XmlDocument而不是XmlReader,或不同的库,或者将数据预加载到MemoryStream中。你也可以在那里找到改进。
或者只是告诉你的老板,因为你没有带有1 TB快速ssds的八核xeon ...... :-)
答案 1 :(得分:0)
如果您不需要同时处理所有数据,处理它的一种方法是手动异步加载数据块(您可能需要手动解析数据)并在加载时以块的形式更新UI。
此外,如果序列化中有任何额外数据,您总是可以提供自己的xml架构,该架构不那么详细,只包含您需要的裸信息。
答案 2 :(得分:0)
您至少有四个选择: