将XML文档转换为二进制文件意味着什么?

时间:2012-04-26 07:40:18

标签: performance windows-phone-7 binary xml

我遇到XDocument.Load("large_file.xml")的性能问题,加载文件大约需要25秒。

我在this question中读到,使用二进制格式可以提供高达10倍的性能提升。

二进制格式是什么样的?你如何将XML文件转换为它?

2 个答案:

答案 0 :(得分:4)

让我们从隐含的问题开始:

问:什么是二进制格式?

答:这是一种以非文本形式表示数据的格式。例如,Java int可能表示为4个字节,而不是十进制数字序列和符号。

问:它看起来像什么?

答:如果您使用文本编辑器/查看器查看它,它看起来像垃圾。

问:如何将XML文件转换为二进制形式?

答:手工。由于二进制格式本质上是一种非文本格式(任何格式),因此没有神奇的转换方法。

问:二进制格式如何以及为何更快?

答:二进制格式的加载速度不会比XML(或JSON)快。我们的想法是,您(程序员)设计应用程序的特定二进制格式,加载更快。您通常通过以下方式执行此操作:

  • 避免包含详细/重复的结构信息(例如XML标记和属性名称),
  • 使用需要较少CPU工作量的数据编码转换为内存中表示,
  • 避免包含不必要的元数据,
  • 避免需要额外内存数据复制的内容,
  • 等等。

答案 1 :(得分:3)

XML格式有很多信息。所以这很大而且很慢。您可以创建自己的格式。

例如:

<Data>Value</Data>可以在二进制文件中的具体地址处更改为value