繁体   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