簡體   English   中英

清理方法中的變量

[英]Cleaning up variables in methods

我正在使用的大型軟件中存在一些內存問題,正在查看我們編寫的方法,這些方法在方法的開頭聲明了變量,但最后並未將其清除(清空或處置)方法的。

public static bool CheckIsNumber(string x)
{
    int y;
    return(int.TryParse(x, out y));
}

正如您在上面看到的, y永遠不會設置為null或處置或類似的東西,我一直認為它會被GC拾取,但是在查看內存分析器后,我就不再那么確定了。

.NET中的變量超出范圍與垃圾回收之間存在區別。 Microsoft列出了將觸發垃圾收集的三個條件:

  1. 系統的物理內存不足。
  2. 托管堆上分配的對象使用的內存超過了可接受的閾值。
  3. 調用GC.Collect方法。

來源: http : //msdn.microsoft.com/zh-cn/library/ee787088(v=vs.110).aspx#conditions_for_a_garbage_collection

當我查看.NET應用程序的內存使用情況時,它們通常會穩定上升到某個點,然后垃圾收集器會收集該內存,然后內存使用率會再次下降。 我能說的最好的就是它的工作原理。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM