DataSet与其他.Net Collection类的内存成本是多少?

时间:2010-02-12 16:28:41

标签: .net

在我们现在不那么现代的n层应用程序中,我们对DataSet进行了广泛的使用,我们正在评估对其他较轻对象(即典型对象的集合)的更改。

是否有任何参考文件说明我们可以通过这样做获得多少内存消耗?

2 个答案:

答案 0 :(得分:3)

DataSet内存使用量的重要指标是DataTable中每行所需的DataRow对象以及为每列自动生成的索引。存储列值是有效的,您无法改进。用一组通用集合替换它将允许消除DataRows,如果DataTable没有很多列,那么可节省大约50%。

索引是你需要担心的。他们非常快地对DataSet进行查询,除非你提供某种自定义替换,否则你将失去它。您是否需要提供替代品是不可能的,这取决于您运行的查询类型。

答案 1 :(得分:0)

这个问题非常主观,取决于许多无法在此显示的因素。如果问题是,DataSet会消耗比相同数量的对象的泛型集合更多的内存,那么答案通常是肯定的。

因为问题是它取决于你如何使用DataSet的具体情况(即:类型数据,DataViews?,索引?),而且只能通过测试准确测量。

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