[英].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.