2011-06-19 24 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.取消訂閱處理程序(如果有)。

除此之外,應該沒有理由擔心優化,除非某些內存分析器報警。

相關問題