0

我正在处理这个 FlashPro/AS3 项目,感谢@vesper 和其他人的帮助,我已经取得了重大进展。

但目前,内存似乎有轻微的泄漏。充其量是很小的一个。我已经在几个地方设置了这样的跟踪。

痕迹: trace("On Load" + System.totalMemory / 1024);

地点: On Load doCleanUp launchVideo

泄漏非常小,根据 Scout 的说法,我认为很可能与未分类内存中的某些内容有关。

这是侦察文件 -侦察文件

这是完整的代码

如果我能在输出上再看到一双眼睛,那就太棒了。

测试结果显示... 1) 一个视频被点击并离开播放 2) 两 (2) 个视频播放并停止/关闭

4

1 回答 1

1

在快速查看 Scout Session 并将早期帧与最后帧进行比较后,看起来它确实使用了更多内存。但是...在“当前总内存”面板中,您可以看到它位于“其他 -> 网络缓冲区”中(最后您有 8,966 KB)。所以我的猜测是 netStream 没有被正确清理。在第一个(大约 1:12)之后,它只有 182 KB,但在第二个(1:25)之后,它是 7,320 KB。

另外-在 doCleanup() 函数中您没有调用是否有原因vp.close();?根据DOCUMENTATION应该强制流关闭。

还有 2 - 你确定这都是垃圾收集的吗?您可以尝试System.gc();在清洁后拨打电话。它在 AIR 中运行良好,在 Flash 播放器中效果不佳,但值得一试。您还可以在 Scout 中强制垃圾收集器。如果您转到“内存分配”选项卡(如果您使用默认布局,则为底部)并且应该有一个小的 bin 图标。看看它是否有什么不同。

于 2015-07-03T10:15:37.700 回答