【发布时间】:2014-10-21 05:02:54
【问题描述】:
在 WPF 中,我想以低内存使用有效地存储数百万个对象并快速检索它。下面是我的示例类。
public class CellInfo
{
public int A { get; set; }
public int B { get; set; }
public string C { get; set; }
public object D { get; set; }
public bool E { get; set; }
public double F { get; set; }
public ClassA G { get; set; }
}
我想存储数百万个CellInfo 对象,每个对象都有自己的标识。我想用那个身份找回它。如果未定义 CellInfo 实例的属性,则需要返回默认值,该值将存储在静态字段中。
所以我只想存储已定义的 CellInfo 对象的属性以及我不想保留在内存中的其他属性,并且可以从静态变量中检索这些属性。
那么任何人都可以建议我以低内存使用率存储和检索数百万个对象的最快方法吗?
注意:我不需要任何额外的软件安装和数据库或任何外部文件来存储它。
【问题讨论】:
-
您将如何检索它们?一次一个顺序?一次随机一个?一次几个?
-
我想一次随机检索一个。例如。如果我将它存储在字典中,var cell = Cells[id].但是当我存储数百万个 CellInfo 对象时,它会占用大量内存。我的 CellInfo 类有大约 25 个属性......但我只会更改 CellInfo 实例的几个属性(2 或 3),而其他属性则需要返回默认值。所以我只想保留/存储我定义的属性。
-
您为什么不想为此使用数据库?如果您不想使用它,您最终会将所有数据存储在 RAM afaik 中。然后,您可以使用任何您想要的集合,它们可能都占用相同数量的空间。
标签: c# wpf performance memory data-structures