2010-08-24 126 views
0

嗨我寫了一個應用程序在閃存AS3,並且當我從閃存跟蹤總應用程序的total memory usage只有約9MB,但在同一時間Task Manager顯示內存使用量爲110MB。差距在100MB左右。Flash總內存使用情況和TaskManager內存使用情況不一樣?

Flash跟蹤方法System.totalMemory跟蹤從應用程序開始到應用程序結束的區別。

+0

但是在任務管理器中,您是否計算了瀏覽器使用的內存? – 2010-08-24 06:28:54

+0

瀏覽器和任務管理器顯示不正確的值,我認爲:( – coderex 2010-08-24 06:38:54

回答

1

Flash播放器使用的內存量不一定與應用程序使用的內存量有關。玩家的內存使用情況取決於操作系統給它多少內存以及其他許多事情,如果你有足夠的空閒內存,沒有理由不讓Flash播放器在需要的時候坐在一些內存上。

一切的一切,你只需要擔心由System.totalMemory *

* 報告的實際內存的使用情況,但確實注意到它報告用於所有當前運行Flash應用程序

+0

只適用於我的應用程序的Flash播放器,這個概念就是這樣,os提供的內存不可用,因爲用戶可以用其他adobe像Photoshop,AI,dreamweaer等物品等等,所以在這種情況下我的應用程序崩潰。:( – coderex 2010-08-24 10:03:40

+1

我不明白你的評論。 – grapefrukt 2010-08-24 11:27:43

0

內存內部Flash Player將垃圾收集使System.totalMemory準確以供內部使用。但即使內存是GC'd,也不會直接返回系統。在IE中,您可以通過最小化瀏覽器來讓瀏覽器返回GC'd空間。所以基本上你在任務管理器中看到的值是內存使用率的高水位標記。如果你需要這個值更低,那麼你唯一能做的就是使用更少的內存。例如,在加載/創建新內容之前,請等到其他內容已經GC'd,以便Flash Player不會立即分配新內存。挑戰在於知道何時實際上已經GC'd。沒有一個好方法可以做到這一點。