如何计算可用内存的最大列表大小?

时间:2012-09-18 10:53:46

标签: c# list tree out-of-memory

我想用

创建一个List<MyClass>
class MyClass
{
    public string Name;
    public List<MyClass> Children;
}

用户决定应创建多少个对象。根据树的深度(列表中的所有对象具有相同数量的子节点),我在列表中使用不同数量的对象时会出现内存不足异常。是否有可能近似最大数量的物体?

1 个答案:

答案 0 :(得分:0)

  

是否有可能近似最大数量的物体

没有。没有这种可能性。

事件如果您可以为托管对象计算sizeof之类的内容,并获得可用内存量,则无法依赖此数字,因为托管代码对托管堆中的当前内存碎片一无所知,它无法阻止系统中的其他进程(以及当前进程中的其他线程)从系统查询新的内存分配。