2010-01-21 75 views
0

我創建了一個在用戶界面中顯示3-4個圖表的UI。Flex圖表中的內存泄漏

我注意到以下

  1. 只要這些圖表加載了IE瀏覽器的內存最多可連拍約400 MB,因爲某些圖表都像顯示高達一千行的表這是可以理解的。

  2. 我注意到我刷新這些圖表越多,IE內存就越多。

從多次代碼的簡單演練中,我找不到任何泄漏或任何數據結構的規模越來越大。我正在使用Flex builder 2.我有幾個問題:我有幾個問題:

  1. Flash何時釋放內存? 我可以將IE返回到 操作系統嗎?
  2. 是否有已知的內存泄漏
    Flash?
  3. 什麼是可能幫助我的 的工具?
  4. 是否有任何編程最好 練習就像使未使用 對象顯式爲空,幫助 ?

非常感謝。

我還有一個問題,它似乎沒有釋放任何內存,除非它最小化?

回答

1

1)本文將解釋有關垃圾收集(託管語言如何處理內存管理)的所有信息。基本上,你有沒有在運行時的控制(有一個黑客給力,但你不應該用它來)

http://www.gskinner.com/blog/archives/2006/06/as3_resource_ma.html

http://blog.flexmonkeypatches.com/2007/03/28/flash-player-memory-management-and-garbage-collection-redux-2/

2)不該有隻要你確保不再需要的物體能夠被垃圾收集,就不會泄漏。這就是說我不熟悉Flex,也許在框架中有一個錯誤? 編輯:似乎有很多人有flex + ie和內存泄漏問題。

3)System.totalMemory至少可以幫助你看到你正在使用多少內存。 編輯:忘了提及,如果你升級到Flex Builder 3它帶有內存分析器工具

4)是的,如果你不再需要的東西設置爲null是很好的做法。不要忘記刪除任何事件監聽器,並儘可能利用弱聽者。如果仍然有對某個東西的引用,那麼它將不會被標記爲垃圾收集器。

+0

我還有一個問題,它似乎沒有釋放任何內存,除非它最小化? – Geek 2010-01-21 10:46:36

+0

嗯實際上谷歌似乎揭示了很多關於flex + ie +圖表內存泄漏的結果。 HTTP://博客。adobe.com/aharui/2007/03/garbage_collection_and_memory.html < - 很多評論。也許有一個讀通過他們:S – Allan 2010-01-21 11:32:05

+0

艾倫,我仍然正確答案谷歌搜索:-)。我想補充的一點是「可能根本沒有泄漏」。當我最小化IE窗口的時候,分配的200MB下來說5Mb,我沒有注意到,只要IE窗口打開,我沒有看到使用的內存減少,但是當你最小化內存時釋放。你見過這個嗎 ? – Geek 2010-01-21 12:23:57