C#中的变量 - 在函数执行后取消设置?

时间:2011-06-19 01:50:42

标签: c# .net performance

是一个很好的方法,我在函数执行后取消设置变量?

好吧,我需要更好的C#应用​​程序性能 我需要消耗更少的内存ram

5 个答案:

答案 0 :(得分:11)

  

是一个很好的方法,我在函数执行后取消设置变量?

不,那是浪费时间。在你知道缓慢的地方之前不要优化。

答案 1 :(得分:8)

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

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

函数返回时未释放的内存不太可能导致程序出现问题。

如另一个答案所述,除非你有确凿的证据证明问题所在,否则不要进行优化。

答案 2 :(得分:3)

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

答案 3 :(得分:3)

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

有一段时间你必须记住unsubscribe from an event

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

答案 4 :(得分:1)

正如其他人所指出,你应该关注: 1.调用IDisposable对象的Dispose。 2.取消订阅处理程序(如果有的话)。

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