2015-07-03 41 views
0

我有這個FlashPro/AS3項目正在工作,並感謝@vesper和其他人的幫助,我已經取得了重大進展。在我的AS3中cleanUp後會導致非常小的泄漏?包括偵察文件

儘管目前看來內存似乎稍有泄漏。最好的一個非常小。我在幾個地方建立了這樣的痕跡。

跟蹤: trace("On Load" + System.totalMemory/1024);

地點: On LoaddoCleanUplaunchVideo

泄漏是非常小,並根據偵察,很可能與在未分類記憶,我認爲一些東西。

這裏是偵察文件 - Scout File

繼承人是Full code

這將是真棒,如果我能得到的輸出另一雙眼睛。

測試結果顯示...被點擊 1)一個視頻和左打出來 2)兩(2)視頻播放並且停止/駁回

回答

1

後快速瀏覽一下童軍會議和比較早的幀最後一個,它看起來確實使用了更多的內存。但是,在「當前內存總數」面板中,您可以看到它在「其他 - >網絡緩衝區」中(最終您的內存爲8,966 KB)。所以我的猜測是netStream沒有正確清理。第一個(大約1:12)後只有182 KB,但在第二個(1:25)之後是7,320 KB。

另外 - 是否有一個原因,爲什麼在doCleanup()函數你不打電話vp.close();?根據DOCUMENTATION即應強制關閉。

另外2 - 你確定它是所有垃圾收集?清潔後,您可以嘗試撥打System.gc();。它在AIR中完美運行,不像Flash播放器那麼好,但值得一試。你也可以在Scout中強制垃圾收集器。如果進入「內存分配」選項卡(如果使用默認佈局,則底部部分),並且應該有小容器圖標。看看它是否有所作爲。

+0

我一直在避免使用System.gc();正如我在幾處地方所讀到的那樣,「技術上」我們不能控制GC,如果我們處於需要強制GC的情況下,我們會發生嚴重泄漏。儘管如此,我目前無法找到造成這種情況的原因。我在兩處添加了'System.gc();',似乎有所改進。現在泄漏就像〜0.4kb。 – elCavador

+0

設置強制GC到定時器還是計數而不是'onCleanup'更好一些? – elCavador

+0

對於GC來說,這是真的,但值得檢查一下之後分配了多少內存,因爲在決定GC之前它仍被「使用」釋放它。再一次「另外 - 是否有一個原因,爲什麼在doCleanup()函數你不打電話vp.close();?」 – 3vilguy

相關問題