中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Flex內存釋放優化原則有哪些

發布時間:2021-12-06 10:05:02 來源:億速云 閱讀:158 作者:小新 欄目:編程語言

這篇文章主要介紹了Flex內存釋放優化原則有哪些,具有一定借鑒價值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。

Flex內存釋放優化原則

1.被刪除對象在外部的所有引用一定要被刪除干凈才能被系統當成垃圾回收處理掉;

2.父對象內部的子對象被外部其他對象引用了,會導致此子對象不會被刪除,子對象不會被刪除又會導致了父對象不會被刪除;

3.如果一個對象中引用了外部對象,當自己被刪除或者不需要使用此引用對象時,一定要記得把此對象的引用設置為null;

4.本對象刪除不了的原因不一定是自己被引用了,也有可能是自己的孩子被外部引用了,孩子刪不掉導致父親也刪不掉;

5.除了引用需要刪除外,系統組件或者全局工具、管理類如果提供了卸載方法的就一定要調用刪除內部對象,否則有可能會造成Flex內存泄露和性能損失;

6.父對象立刻被刪除了不代表子對象就會被刪除或立刻被刪除,可能會在后期被系統自動刪除或第二次移除操作時被刪除;

7.如果父對象remove了子對象后沒有清除對子對象的引用,子對象一樣是不能被刪除的,父對象也不能被刪除;

8.注冊的事件如果沒有被移除不影響自定義的強行回收機制,但有可能會影響正常的回收機制,所以***是做到注冊的事件監聽器都要記得移除干凈。

9.父對象被刪除了不代表其余子對象都刪除了,找到一種狀態的泄露代碼不等于其他狀態就沒有泄露了,要各模塊各狀態逐個進行測試分析,直到測試任何狀態下都能刪除整個對象為止。

Flex內存泄露舉例:

1.引用泄露:對子對象的引用,外部對本對象或子對象的引用都需要置null;

2.系統類泄露:使用了系統類而忘記做刪除操作了,如BindingUtils.bindSetter(),ChangeWatcher.watch()函數時候完畢后需要調用ChangeWatcher.unwatch()函數來清除引用,否則使用此函數的對象將不會被刪除;
類似的還有MUSIC,VIDEO,IMAGE,TIMER,EVENT,BINDING等。

3.效果泄露:當對組件應用效果Effect的時候,當本對象本刪除時需要把本對象和子對象上的Effect動畫停止掉,然后把Effect的target對象置null;如果不停止掉動畫直接把Effect置null將不能正常移除對象。

4.SWF泄露:要完全刪除一個SWF要調用它的unload()方法并且把對象置null;

5.圖片泄露:當Image對象使用完畢后要把source置null;(為測試);

6.聲音、視頻泄露:當不需要一個音樂或視頻是需要停止音樂,刪除對象,引用置null;

Flex內存泄露解決方法:

1.在組件的REMOVED_FROM_STAGE事件回掉中做垃圾處理操作(移除所有對外引用(不管是VO還是組件的都需要刪除),刪除監聽器,調用系統類的清除方法)
先remove再置null,確保被remove或者removeAll后的對象在外部的引用全部釋放干凈;

2.利用Flex的性能優化工具Profile來對項目進程進行監控,可知道歷史創建過哪些對象,目前有哪些對象沒有被刪除,創建的數量,占用的內存比例和用量,創建過程等信息;
總結:關鍵還是要做好清除工作,自己設置的引用自己要記得刪除,自己用過的系統類要記得做好回收處理工作。以上問題解決的好的話不需要自定義強制回收器也有可能被系統正常的自動回收掉。

感謝你能夠認真閱讀完這篇文章,希望小編分享的“Flex內存釋放優化原則有哪些”這篇文章對大家有幫助,同時也希望大家多多支持億速云,關注億速云行業資訊頻道,更多相關知識等著你來學習!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

福贡县| 屯留县| 方城县| 延安市| 武城县| 孟津县| 泰州市| 图片| 黄平县| 封开县| 保定市| 咸宁市| 杂多县| 大田县| 永胜县| 昭苏县| 呼伦贝尔市| 中卫市| 镇宁| 洛阳市| 蕉岭县| 台湾省| 军事| 花莲市| 大名县| 正定县| 台北县| 平罗县| 永寿县| 高唐县| 白沙| 拉孜县| 黄梅县| 双城市| 巴青县| 安庆市| 绥德县| 甘南县| 尼勒克县| 临海市| 綦江县|