繁体   English   中英

.NET内存泄漏

[英].NET Memory Leak

我有一个具有多个帮助程序类的ASP.NET应用程序。 我有点担心内存泄漏。 每次我想使用助手类成员函数时,都这样调用它们

new SampleHandler().DoFunction();

由于它对创建的对象没有任何强引用,我可以保证GC是否会清除创建对象的内存吗?
由于我很有可能不再在页面中再次使用该对象,因此我开始像这样进行编码。

.

是的,因为没有其他未完成的引用,所以由new SampleHandler()创建的实例将在DoFunction()返回时有资格进行收集。

但是,不能像往常一样保证GC收集该实例的时间。

垃圾收集器将处理未使用的引用。 因此,您无需担心内存泄漏。 但是,如果您非常快地创建“垃圾”对象,则可能会有暂时的内存压力。

但是如果仍然不需要实例或实例是可交换的,应该考虑使方法static

public class SampleHandler
{
    public static void DoFunction()
    {
        // ...
    }
}

然后您将其称为:

SampleHandler.DoFunction();

即使是多线程环境,ASP.NET中的静态方法也没有问题。 但是您应该注意静态字段。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM