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