|
其實(shí)吧,內(nèi)存泄露一直是個(gè)令人頭疼的問題,在帶有GC的語言中這個(gè)情況得到了很大的好轉(zhuǎn),但是仍然可能會(huì)有問題。
一、什么是內(nèi)存泄露(memory leak)?
內(nèi)存泄露不是指內(nèi)存壞了,也不是指內(nèi)存沒插穩(wěn)漏出來了,簡單來說,內(nèi)存泄露就是在你期待的時(shí)間內(nèi)你程序所占用的內(nèi)存沒有按照你想象中的那樣被釋放。
因此什么是你期待的時(shí)間呢?明白這點(diǎn)很重要。如果一個(gè)對(duì)象占用內(nèi)存的時(shí)間和包含這個(gè)對(duì)象的程序一樣長,但是你并不期望是這樣。那么就可以認(rèn)為是內(nèi)存泄露了。用具體例子來說明如下:
class Button { public void OnClick(object sender, EventArgs e) { ... }}class Program { static event EventHandler ButtonClick; static void Main(string[] args) { Button button = new Button(); ButtonClick += button.OnClick; }}
NET技術(shù):談?wù)?NET中常見的內(nèi)存泄露問題——GC、委托事件和弱引用,轉(zhuǎn)載需保留來源!
鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請(qǐng)第一時(shí)間聯(lián)系我們修改或刪除,多謝。