代码之家  ›  专栏  ›  技术社区  ›  jmservera

与其他.NET集合类相比,数据集的内存开销是多少?

  •  5
  • jmservera  · 技术社区  · 16 年前

    在我们现在还不太现代的n层应用程序中,我们使用数据集,并评估对其他较轻对象(即类型化对象的集合)的更改。

    有没有任何参考文件可以说明这样做可以获得多少内存消耗?

    2 回复  |  直到 16 年前
        1
  •  3
  •   Hans Passant    16 年前

    数据集内存使用的主要影响因素是datatable中每一行所需的datarow对象以及为每一列自动生成的索引。列值的存储是有效的,您不能改进它。用泛型集合的集合替换此集合将允许删除数据行,如果datatable没有很多列,则可以节省大约50%。

    索引是你需要担心的。它们对数据集的查询速度非常快,除非提供某种自定义替换,否则将丢失这些查询。是否需要提供替换项是不可能的,这取决于您运行的查询类型。

        2
  •  0
  •   Cory Charlton    16 年前

    这个问题相当主观,取决于许多因素,这里无法说明。如果问题是一个数据集是否会比相同数量对象的一般集合消耗更多内存,那么答案通常是肯定的。

    因为问题是它将在多大程度上取决于您如何使用数据集的细节(即:类型化数据、数据视图?,索引?)只有通过测试才能精确测量。

    但是,根据您使用数据集的方式,您可能需要重建大部分功能。

    推荐文章