2011-06-19 22 views

回答

8

函数返回时,值类型的变量(大多数内置类型,如int,char,bool以及结构体)通常会立即回收它们的内存,因为它们分配在“堆栈”上它们是在函数开始执行时创建的数据结构的一部分,并在函数返回时释放)。

当垃圾收集器不再需要时,引用类型的变量将被自动释放。

当函数返回时,内存不会被释放,这不可能是导致程序出现问题的原因。

正如另一个答案所述,除非您有确凿证据证明问题出在哪里,否则不要优化。

11

是一个很好的方法,我尚未设定的变量后,函数执行?

不,那是浪费时间。除非你知道缓慢的地方,否则不要进行优化。

3

如果您正在寻找软件中的问题,那么可以使用免费的Profiler XTE Profiler。这将允许您在代码中找到任何内存泄漏或瓶颈。此外,现在,Telerik已经发布了自己的内存分析器,它目前免费提供,但它的测试版本。

3

一般来说,您在C#中必须关注的唯一“管理”是处理其类实现IDisposable的对象。这通常通过using blocks完成。

偶尔你必须记住unsubscribe from an event

否则,不要担心它(除非您分配数以万计的对象并将它们保存在内存中)。相信垃圾收集器。

1

正如其他人指出的那样,您应该关注: 1.调用Dispose of IDisposable objects。 2.取消订阅处理程序(如果有)。

除此之外,应该没有理由担心优化,除非某些内存分析器报警。

相关问题