There can be no Triumph without Loss,No Victory without Suffering,No Freedom without Sacrifice.
All you have to decide is what to do with the time that is given to you.
Get busy Living, or Get busy Dying?
  首页 | 留言给我 | 订阅 Rss | CLI | 黄白之恋 Posts:158   Hits: 5582588    Comments: 173    
 日历归档
<<  <  2024 - 12  >  >>
SuMoTuWeThFrSa
1234567
891011121314
15161718192021
22232425262728
293031
 About Me
 Name: ZhangSichu
 Sex: Male
 Age: 32
 Email: ZhangSichu@gmail.com
 MSN: ZhangSichu@hotmail.com
 Home: ZhangSichu.com
 WeiBo: weibo.com/zhangsichu
 个人推荐
 分类归档
  ·C++/C(5)  RSS
  ·软件工程(1)  RSS
  ·杂事/随感(26)  RSS
  ·.Net/Java(30)  RSS
  ·面向对象程序设计(5)  RSS
  ·汇编/破解(0)  RSS
  ·平面设计(3)  RSS
  ·SQL(5)  RSS
  ·COM/COM+(2)  RSS
  ·Web开发(81)  RSS
 My Friends
Back Forward Refresh Home 2024年12月9日 星期一 RSS CLI Mine Sweeper. In Javascript.

  .Net内存泄漏问题
字体大小 [ ]

堆栈内存泄漏
堆栈内存泄漏有两种可能:
1.  进行一种非常消耗堆栈资源的的调用操作,并借这种调用操作不返回,不释放资源。使得.Net无法释放这些关联的堆栈资源。
2.  在多线程情况下,虽然线程的Thread引用回收了,但是不手动回收线程,在线程不会中止或者不会返回时,线程所占用的资源也就不会被回收。
非托管堆内存泄漏:
1.  主要原因是使用了COM 这样的非托管组件,由于.Net的GC不能识别这些COM组件,那么GC就无法对它进行回收。所以这些组件需要自己写代码回收。
2.  对象的析构,没有被调用。
3.  托管对象不写不必要的析构方法。如果托管对象操作了非托管资源才有可能需要写析构方法,对非托管资源进行回收,如果完全是托管资源的使用,完全没有必要写析构方法。如果写了还要更多一次的GC调用,升高了一次Generation。增大了回收代价。
  Posted @ 1/11/2007 3:11:04 PM | Hits (75283) | Comment (0

  Post Comment
标题 *
作者 *
密码 记住我
评论 *
    


Stable in Firefox 1.5 2.0Stable in IE6 IE7Stable in MozillaStable in Netscape
ZhangSichu.com V0.1.7507
Powered By ZhangSichu
Copyright © ZhangSichu
Download ZhangSichu.com source code. Download source code