Flex 中可能導致記憶體洩露的地方

2021-05-21 18:21:18 字數 966 閱讀 9712

收集了不少的會導致記憶體洩露的情況:

對父級物件加了監聽函式,會造成記憶體洩露,例:

override protected function mousedownhandler(…):void

包含了image物件時,在removechildren時會造成不能釋放(測試多次,結果不一,建議還是做如下處理)。

解決:

img.source = null;

this.removechild(img);

img = null;

關閉任何連線的網路物件,例如loader正在載入,要先close。

取消對攝像頭或者麥克風的引用

取消事件***

停止任何正在執行的定時器,clearinterval()

停止任何timer物件,timer.stop()

binding也疑似有memory leak 問題。

引用以及記憶體洩露相關博文和資料:

總結:由於之前flash一直是在網頁上使用,一般網頁都是看完就關掉的,估計adobe在記憶體**這塊也沒有下太大的功夫,現在air的出現使得記憶體管理也相當重要了,並且,air本身對記憶體的消耗就相當大,乙個沒有任何內容的初始建立的air程式,就得佔掉10-20m+的記憶體…air還需改善.

執行緒可能導致記憶體洩露的情況

繼承thread的執行緒,在交給jdk1.4並發包的執行緒池執行完畢後並沒有被釋放資源,而且也沒被再利用,而是白白佔著記憶體,導致記憶體洩露。預設的thread本身初始化在1.4是將自己加入了乙個threadgroup,如果你沒有呼叫它的start方法,jvm不會在該執行緒結束後將這個thread從...

使用self 導致的記憶體洩露

請看第一段 在myobject.m中 self.aobj nsobject alloc init void dealloc 你能否看出這裡的記憶體洩露?接下來看第二段 aobj nsobject alloc init void dealloc 你能否看出這裡是否也有記憶體洩露呢?如果你都能夠很確定的...

使用self 導致的記憶體洩露

原文連線 ps 在新的框架中似乎不用考慮這些了,系統應該會自動計數和釋放。請看第一段 在myobject.m中 self.aobj nsobject alloc init void dealloc 你能否看出這裡的記憶體洩露?接下來看第二段 aobj nsobject alloc init void...