對於遊戲(使用AIR for iOS),我想阻止GC在特定的30秒內運行(因爲它會導致非常顯着的滯後)。adobe AIR:阻止GC運行
我已經做的就是在序列開始之前調用System.gc()。在序列中,我不會創建許多新對象,只有一些動畫播放和對象移動(以3D形式)。一些物體移出舞臺。
在此序列中的存儲器統計aproximately:
System.totalMemory: 4.5 MB
System.freeMemory: 1.0 MB
System.privateMemory: 75 MB
當GC火災,該System.privateMemory下降到74 MB,但會導致aproximately一秒的延遲。 GC在這30秒的時間內發射兩次。
所以我的問題是關於任何技術,黑客或workarrounds(除了優化內存使用一般 - 顯然我已經在這方面工作),以防止GC在這30秒內發射?
感謝。
你有很多的對象? – Cameron 2012-02-25 04:28:16
好 - 有很多 - 幾百個我會說 - 但我並沒有在這個序列中創建大量新的(我可能添加50個顯示對象,並在30秒內再次移除它們) – Mat 2012-02-25 05:40:06
它會幫助創建對象在序列之前,保持它們不可見,並且只是通過可見性進行播放,不會使用對象創建/刪除來警告GC ... – catholicon 2012-02-25 08:39:27