天天看點

Dot NET 記憶體洩漏

因為正好解決了手頭一個洩漏的問題,正好做個總結。一開始我認為托管代碼是不存在洩漏問題的(不使用指針,不操作unsafe的代碼) ,我想跟我這樣想的人應該不少,呵呵。

傳統的記憶體洩漏主要是因為使用後沒有釋放造成的 ,而在托管平台下記憶體的回收是由gc完成,是以托管中出現記憶體洩漏一般都是因為gc無法分辨對象是否可以被回收造成的,而最常見的就是循環引用,另外委托也是重災區,4.0中引入的task也成為新的增長點(插播新聞javascript:void(0))。

(插播新聞:

在我的代碼中大量使用了task,造成洩漏是因為我使用了TaskCreationOptions.AttachedToParent,它會保持引用關系而不被回收。

作者:KKcat

    

繼續閱讀