清除部分对象后的asp.net会话内存大小

时间:2011-09-10 00:54:51

标签: c# asp.net

我的asp.net应用程序我在内存会话中有一个对象,它存储了“School”对象的实例,在这个学生集合中有100个学生。在我完成使用Students对象后,如果我指定学生= null / Students.Clear()

我的问题是,它会释放学生对象占用的内存吗?或者它将等待学校对象完全从会话中移除。

通过序列化获得的尺寸:

100名学生的学校对象的总内存大小:10kb

学校对象大小删除学生对象后:1 kb

上述结果是否也会反映在RAM中?

public class school
{
    public string SchoolName { get; set; }
    public string SchoolAddress { get; set; }
    public List<student> Students { get; set;}
}

public class student
{
    public string Name { get; set; }
}

1 个答案:

答案 0 :(得分:1)

正如您正确假设的那样,正如上面的评论中已经指出的那样,如果在运行的应用程序中没有对象的更多引用,Garbage Collector将释放对象的内存。会议在这里也不例外。

如果您在Session中有学校对象,并且您将Students对象设置为null,并且在任何地方都没有对集合对象的其他引用,那么GC迟早会收集它们。

This article也有关于该主题的段落。