簡體   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