2010-08-24 125 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。没有一个好方法可以做到这一点。