2

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

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

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

4

2 回答 2

4

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

问:什么是二进制格式?

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

问:它看起来像什么?

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

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

答:用手。由于二进制格式本质上是一种不是文本的格式(任何格式),因此没有什么神奇的方法可以转换它。

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

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

  • 避免包含冗长/重复的结构信息(例如 XML 标记和属性名称),
  • 使用需要较少 CPU 工作量的数据编码来转换为内存中的表示,
  • 避免包含不必要的元数据,
  • 避免需要额外的内存数据复制的事情,
  • 等等。
于 2012-04-26T08:23:23.763 回答
3

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

例如:

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

于 2012-04-26T08:05:00.753 回答