所謂內存泄露就是指一個不再被程序使用的對象或變量一直被占據在內存中。.Net 中有垃圾回收機制,它可以保證一對象不再被引用的時候,即對象編程了孤兒的時候,對象將自動被垃圾回收器從內存中清除掉。雖然.Net 可以回收無用的對象,但是.Net 仍然存在由于使用不當導致的內存泄露問題。.Net 中的內存泄露的情況:長生命周期的對象持有短生命周期對象的引用就很可能發生內存泄露,盡管短生命周期對象已經不再需要,但是因為長生命周期對象持有它的引用而導致不能被回收,這就是.Net 中內存泄露的發生場景,通俗地說,就是程序員可能創建了一個對象,以后一直不再使用這個對象,這個對象卻一直被引用,即這個對象無用但是卻無法被垃圾回收器回收的,這就是.Net 中可能出現內存泄露的情況,例如,緩存系統,我們加載了一個對象放在緩存中(例如放在一個全局Dictionary 對象中),然后一直不再使用它,這個對象一直被緩存引用,但卻不再被使用。
新聞熱點
疑難解答