2008-11-16 68 views
2

我想製作可在支持Flash的瀏覽器中運行的應用程序,並決定flex對我來說是最好的,所以我開始學習。 AFAIK flex有一個GC,但與其他語言相比,GC的工作原理可能有點不同。我發現this,但顯然有(或)是巨大的內存泄漏,無法防止,並在IE中運行時,更糟糕的是。Flex內存安全(無泄漏)

現在可以安全地信任它。有沒有修復過的泄漏?

+0

當人們開始討論flex和web開發時,我總是感到困惑。我一直認爲flex是一個詞法掃描器。 :-) – JesperE 2008-11-16 19:31:31

回答

0

你可以看看的一些資源是:Flex Bug Tracking你可以細讀已經修復/記錄的內存泄漏錯誤。同樣在Flex Builder IDE中,您可以使用Profiler監視內存/ CPU使用情況等。我無法專門回答您的問題。我認爲這是您的一部分責任,開發人員以及您如何設計和管理您的代碼。除此之外,我注意到使用Flex 3框架(或一般的ASVM2),它爲我完成了對GC的管理。請記住,Flex 4即將到來。

3

我在一個相當大且複雜的Flex3應用程序上工作,並且我們沒有任何可怕的或無法控制的內存泄漏 - 即使在IE中。

格蘭特斯金納在AS3的垃圾收集這篇文章對我非常有幫助。它於2006年發佈,但仍然完全相關(因爲我們仍在使用AS3)。這是他在資源管理方面做了三部分的系列文章的一部分 - 他的帖子中有相關文章的鏈接。

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

東西理解/記住的是,Flex應用程序運行在Flash播放器 - 也許你是清楚這一點,但我不認爲這是完全顯而易見的,如果你不從Flash未來發展背景。至少,我認爲這不適合我。 :)

0

以我的經驗時,Flex 2將泄漏顯著記憶隨着時間的推移,特別是在Firefox 2,我不知道關於Flex 3

2

有是發表描述Flash Player的垃圾一個Adobe DevNet文章專輯:

http://www.adobe.com/devnet/flashplayer/articles/garbage_collection.html

當你在ActionScript編程與記憶您最關心的是確保你不保持引用各地那些不再需要的對象。例如,當您添加一個事件偵聽器時,請確保您也在不再需要時刪除該事件偵聽器(或學習如何利用弱引用)。

在我的經驗中,Flex框架通常擅長這種記憶簿記。應用程序的內存佔用空間會下降,部分原因是您在考慮垃圾收集器時編寫了多少代碼。

如果確實遇到內存不斷增加的問題,則可以利用Profiler獲取並比較內存快照,以查找泄漏對象。你可以找到這裏的探查信息:

http://livedocs.adobe.com/flex/3/html/profiler_1.html

0

人們在我的工作,說有一個與組合框和自動完成事件的錯誤。