2009-04-14 49 views
2

我在树结构中有一组数据。目前我将这些数据保存到二进制文件中。缺点是这些数据的排序和过滤非常困难。不仅如此,当数据量很大时,从硬盘读入内存的速度非常慢。将树结构数据转换为XML--性能问题

因此,我正在考虑将这些树状数据保存为XML文件。我想这样做的原因是因为

  1. XML已经得到了建库的筛选和数据处理
  2. XML操作是深受社会支持,而现在我要支持我自己的数据结构操作

考虑到.Net对XML的支持,我想知道从XML查询数据,而不是从二进制文件查询数据,它是否更快(在加载速度方面)?我做这个开关对我有什么好处吗?我相当确信,就程序设计而言,XML能够击败我自己的树型数据结构,但加载速度又如何呢?

回答

1

作为一条经验法则:您不会发现XML是管理数据的最小或最快的方式。

您的描述没有给出足够详细的说明,但也许关系数据库会是一个更好的方法。将树结构映射到关系模型通常并不困难。 (走另一条路是另一回事......)

+0

非常简洁。 +1 – Cerebrus 2009-04-14 16:39:28

0

数据大小可能会大于您当前的树大小,因为XML是文本,因此所有数据都必须被序列化为文本表示。所以加载可能也可能不会更慢,这也取决于您当前的加载实现。至于其他方面,如果做得对,查询和修改数据是非常简单和相当高效的,但是由于文本性质,它通常不能超过一个良好完成的二进制实现。如果您需要转换树数据(用于显示等),那么XML非常棒 - 使用XSL Transformations,您可以使用很少的编程创建几乎任何XML,HTML或文本表示形式的数据(因此也可以测试和调试)的努力。

0

从性能的角度来看,XML几乎肯定会失去对二进制结构的竞争。然而,从发展和技术的角度来看,你认为XML是胜手平平的。

我完全赞同@ Dan的说法。随着数据量的增加,XML数据结构的性能呈指数级下降。它的用途非常普遍,因为大多数应用程序不处理通常存储在数据库中或序列化为二进制数据的大量数据。

相关问题